polymorphism相关内容

在 Haskell 中实现临时多态性的最佳方法是什么?

我有一个多态函数,例如: convert :: (Show a) =>一个->细绳convert = " [label=" ++ (显示一个) ++ "]" 但有时我想给它传递一个 Data.Map 并做一些更花哨的键值转换.我知道我不能在这里进行模式匹配,因为 Data.Map 是一种抽象数据类型(根据 this similar SO question),但我没有成功为此使用警卫,而且我不确 ..
发布时间:2022-01-24 16:30:31 其他开发

C ++中的动态与静态多态性:哪个更可取?

我了解动态/静态多态性取决于应用程序设计和要求.但是,如果可能的话,是否总是选择静态多态性而不是动态多态性?特别是,我可以在我的应用程序中看到以下两种设计选择,这两种选择似乎都被建议不要使用: 使用 CRTP 实现静态多态性:没有 vtable 查找开销,同时仍以模板基类的形式提供接口.但是,使用大量的 switch 和 static_cast 来访问正确的类/方法,这是危险的 动态多 ..
发布时间:2022-01-24 16:30:17 C/C++开发

多态性和构造函数

我是一名 AP Java 学生,我正在准备考试.我遇到了这个问题,我不明白答案: 考虑以下类: 公共A类{公共 A() { methodOne();}public void methodOne() { System.out.print("A");}}公共类 B 扩展 A{公共 B() { System.out.print("*");}public void methodOne() { Sy ..
发布时间:2022-01-24 16:30:07 Java开发

C# 多态性

运行时多态性和编译时多态性有什么区别?另外,早期绑定和后期绑定有什么区别?示例将不胜感激. 解决方案 编译时多态 方法重载就是一个很好的例子.您可以有两个具有相同名称但具有不同签名的方法.编译器会在编译时选择正确的版本. 运行时多态性 在子类中覆盖父类的虚方法就是一个很好的例子.另一个是从接口实现方法的类.这允许您在使用子指定的实现时在代码中使用更通用的类型.给定以下类定 ..
发布时间:2022-01-24 16:29:57 C#/.NET

Haskell 的多态风格是什么?

使用 Haskell 的类型类,它似乎启用了即席多态,但它的函数声明似乎是参数多态.我是否混合了我对不同事物的理解? 解决方案 确实,Haskell 支持(更高级别的)参数多态性和 ad hoc(或 有界)多态性.Haskell 中的参数多态性通过其 Hindley-Milner/System F 类型系统得到支持.通过类型类支持临时多态性. 关于类型类和即席多态性的起源,请参阅 W ..

如何将 Class 作为参数传递并在 Java 中返回泛型集合?

我正在为我的 Java 应用程序设计一个简单的数据访问对象.我有一些类(记录)代表表中的单行,例如 User 和 Fruit. 我想要一个方法来获取特定类型的所有记录. 暂时我是这样的: 公开列表获取所有用户(){...}公开列表getAllFruits() {...}…… 但我想要一个像这样的单一多态方法(错误): 公开名单getAllRecords(类类 ..
发布时间:2022-01-24 16:29:19 Java开发

如何在 Scala 中实现通用数学函数

我刚刚开始使用 Scala,而我认为应该很容易理解的东西却很难.我正在尝试实现以下功能: def square(x:Int):Int = { x * x } 这很好用,但如果我想让这个函数适用于任何类型的数字,我希望能够执行以下操作: def square[T 这抱怨并说:错误:值*不是类型参数T的成员 我需要为此实现一个特征吗? 解决方案 那是我在 Stac ..
发布时间:2022-01-24 16:29:04 其他开发

在 C++11 中声明接口的最佳方法

众所周知,有些语言有接口的概念.这是Java: 公共接口可测试{无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) 类可测试{上市:虚拟无效测试()= 0;受保护:可测试();可测试(const Testable& that);可测试&opera ..
发布时间:2022-01-24 16:28:57 C/C++开发

为什么 Haskell 的 `head` 会在一个空列表上崩溃(或者为什么 *不* 它返回一个空列表)?(语言哲学)

其他潜在贡献者请注意:请不要犹豫,使用抽象或数学符号来表达您的观点.如果我发现您的答案不清楚,我会要求您解释清楚,否则请随意以舒适的方式表达自己. 明确一点:我不是在寻找“安全的"head,head 的选择也不是特别有意义.问题的核心是关于 head 和 head' 的讨论,它们用于提供上下文. 我已经用 Haskell 破解了几个月了(以至于它已经成为我的主要语言),但我承认我对一些 ..
发布时间:2022-01-24 16:28:47 其他开发

为什么向上转型不显示运行时多态性?

我写了一段代码来理解运行时多态性... 类 S{诠释我=1;无效米(){System.out.println("ssssssssssssssssssss");}}公共类 A 扩展 S{诠释我=2;无效米(){System.out.println("aaaaaaaaaaaaaaaaaaaaaaaa");}公共静态无效主要(字符串[]参数){S a=(S)新 A();System.out.print ..
发布时间:2022-01-24 16:28:23 Java开发

java - 如何使用多态性在java中创建具有不同类型的列表?

我有 3 个课程圆形、矩形和方形 我想获取上述每个类所需的数据并由用户创建. 表示用户可以想要什么,例如 3 个 Circles 、2 个 Rectangles 和 7 个 Squares .形状的数量取决于用户. 然后我想将它们保存在 unit list 中并调用我的类方法,它们是 calculateArea 和 calculatePerimeter 并显示周长和面积其中有他们 ..
发布时间:2022-01-24 16:28:03 Java开发

在 Android 上共享 Realm 字段

Android 上的 Realm 不支持模型继承/多态.p> 那么有没有办法在 Android 上共享字段?我们有 5 个模型,它们都共享相同的同步相关字段和代码.我们在当前的 SQLite 模型中使用继承;如果我们切换到 Realm,我们唯一的选择是在 5 个模型类中复制同步字段吗? 作为一种解决方法,我正在考虑让这些类实现一个 Syncable 接口,其中包含用于共享字段的 gette ..
发布时间:2022-01-24 16:27:55 Java开发

如何轻松应对 Haskell 上的类型系统?

Haskell 的类型系统功能强大,因其数学严谨性和逻辑合理性而广受喜爱,另一方面,像下面这样幼稚的东西让我想知道为什么它不能按直觉预期工作? 例如为什么 Int 不能在 x3 上转换为 Num 但 f1 接受 Int反对签名Num? 前奏曲>让 x1 = 1前奏>:t x1x1 :: Num a =>一个前奏>让 x2 = 1 :: Int前奏>:t x2x2 :: 整数前奏>让 x3 ..
发布时间:2022-01-24 16:27:47 其他开发

C++ new[] 在数组访问时进入基类指针崩溃

当我分配一个对象时,这段代码可以正常工作.当我尝试添加数组语法时,它会出现段错误.为什么是这样?我的目标是向外界隐藏 c 类在内部使用 b 对象的事实.我已将程序发布到 codepad 供您使用. #include 使用命名空间标准;//文件 1甲级{上市:虚空 m() { }虚拟 ~a() { }};//文件 2b类:公共a{诠释 x;上市:void m() { cout ..
发布时间:2022-01-24 16:27:17 C/C++开发

C++ 多态性和向量,将向量的派生类指向向量的基类

说:苹果派生自一个基础水果类,然后有一个类 ApplePicker 派生自一个基础 FruitPicker 类. ApplePicker 类具有 vectorappleList,水果选择器类有一个指向 vector 的指针,即 vector*fruitList. 我需要能够将向量设置为这个指针,以便抽象方法可以在水果采摘器类中运行(因为它们只关心水果成员).但是当我尝试这样做 ..
发布时间:2022-01-24 16:27:10 C/C++开发

多态性与继承有关

为什么多态性依赖于继承?代码示例? 解决方案 多态性不天生就依赖于继承. 多态是一个相当抽象的概念,它为不同类型的值提供统一的接口. 在 Java 或 C# 等常见的面向对象语言中,这些接口是通过类继承提供的,但这是多态性的一种可能实现,而不是一般的多态性概念. Duck 类型、结构类型、C++ 样式模板或类型类都提供了多态性的其他实现. 只需查看所有这些多态代码, ..
发布时间:2022-01-24 16:26:23 其他开发