polymorphism相关内容

公共字段类型的多态性

这个问题是否可以通过功能惯用方法解决,泛型或有区别的联合可以成为答案吗? 当函数使用一些公共字段时,是否可以通过将不同类型传递给函数来实现多态性. 想法是能够调用和重用不同类型的函数并使用公共属性/字段. 类型 Car = {注册:字符串所有者:字符串轮子:intcustomAttribute1:字符串customAttribute2: 字符串}类型卡车 = {注册:字符串所有者:字 ..
发布时间:2022-01-24 16:48:19 其他开发

在 Java 中继承静态变量

我想要以下设置: 抽象类父{公共静态字符串 ACONSTANT;//如果允许,我会在这里使用抽象//其他内容如下}类子扩展父{public static String ACONSTANT = "一些值";//等等} 这在java中可能吗?如何?如果可以避免的话,我宁愿不使用实例变量/方法. 谢谢! 编辑: 常量是数据库表的名称.每个子对象都是一个迷你 ORM. 解决方案 ..
发布时间:2022-01-24 16:47:45 Java开发

new() 约束对类定义有什么作用?

我看到了这个代码示例,想知道 new() 约束的目的是什么: 公共类客户端;: IClient where T : IClientFactory, new(){公共客户端(int UserID){ }} 解决方案 这就是所谓的“‘新’约束".这里是文档. 新约束指定泛型类声明中的任何类型参数都必须具有公共无参数构造函数.要使用新的约束,类型不能是抽象的. (强调我的) 基本 ..
发布时间:2022-01-24 16:47:17 C#/.NET

如何让 Moose 返回一个子类实例而不是它自己的类,以实现多态性

我想创建一个泛型类,它的构建器不会返回这个泛型类的实例,而是一个专用子类的实例. 由于 Moose 进行自动对象构建,我不明白这是否可行,以及如何使用 Moose 语法创建 Moose 类并具有此行为. 例如:用户询问:$file = Repository->new(uri=>'sftp://blabla') .... 并返回一个 `Repository::_Sftp` 实例 用 ..
发布时间:2022-01-24 16:47:02 其他开发

对于重载函数,调用父子实例的专用版本

我早些时候问了一个问题,但事实证明我的问题没有通过我的示例正确建模.所以这是我的实际问题: 我有类 A,类 B 继承自 A, 我有两个函数 foo(A&) 和 foo(B&), 我有一个 A* 指针列表,其中包含 A 和 B 的实例. 如何为 A 的实例调用 foo(A&) 为 的实例调用 foo(B&)>B?约束:我可以修改A和B的实现,但不能修改foo的实现. 看下面的例子: ..
发布时间:2022-01-24 16:46:20 C/C++开发

C# 是不可分配的类型 - 泛型

所以我只是在使用我正在研究的状态机类型,主要是想尝试一下 Activator.CreateInstance 方法来看看它是什么样的,我遇到了一个我似乎无法使用的问题我想的 where 子句.如果我只是个白痴,我提前道歉,每个人都笑我离开这里.所以我有2个小班. 公共类TransitionContainer:ITransitionContainer其中 TTransition : ITransit ..
发布时间:2022-01-24 16:46:14 C#/.NET

C# 一个列表中的不同类对象

我现在已经四处寻找解决这个问题的方法.我找到了几种可以解决它的方法,但老实说,我没有意识到哪些方法会被认为是“正确的"C# 或 OOP 解决方法.我的目标不仅是解决问题,而且是制定一套好的代码标准,我相当确定有一个标准的方法来处理这个问题. 假设我有 2 种类型的打印机硬件,它们各自的类和通信方式:PrinterType1、PrinterType2. 如果需要,我还希望以后能够添加另一 ..
发布时间:2022-01-24 16:46:04 C#/.NET

如何在 CUDA 中使用多态性

我正在将一些物理模拟代码从 C++ 移植到 CUDA. 基本算法可以理解为:对向量的每个元素应用一个算子.在伪代码中,模拟可能包括以下内核调用: apply(算子 o, 向量 v){...} 例如: apply(add_three_operator, some_vector) 将为向量中的每个元素添加三个. 在我的 C++ 代码中,我有一个抽象基类 Operator,具有许多不 ..
发布时间:2022-01-24 16:45:48 其他开发

C#:有什么方法可以跳过多态性中的一个基本调用?

类 GrandParent{公共虚拟 void Foo() { ... }}类父:祖父{公共覆盖无效Foo(){base.Foo();//做额外的工作}}班级孩子:父母{公共覆盖无效Foo(){//如何跳过 Parent.Foo 并到达 GrandParent.Foo 基地?//做额外的工作}} 如上面的代码所示,我怎样才能让 Child.Foo() 调用 GrandParent.Foo() 而 ..
发布时间:2022-01-24 16:45:16 C#/.NET

类 C 语言中的返回类型多态性

为什么我们没有看到允许在返回类型中具有多态性的可调用对象的类 C 语言?我可以看到额外的类型推断将如何成为一个障碍,但我们有 大量语言成熟的类型推理系统(适用于不同级别的“工作"). 编辑:返回类型多态是指仅在返回类型中重载函数签名.例如,C++ 和 Java 只允许在形参的类型中重载,而在返回类型中不允许重载. 解决方案 如果“返回类型多态性"是指基于返回值类型的重载,我不确定其他 ..
发布时间:2022-01-24 16:45:06 其他开发

多态性和铸造

我想了解 c# 中的多态性,因此通过尝试几种构造,我想出了以下案例: 类形状{公共虚拟无效绘图(){Console.WriteLine("Shape.Draw()");}}类圆:形状{公共覆盖无效绘制(){Console.WriteLine("Circle.Draw()");}} 我知道,为了将 Draw() 消息发送到几个相关对象,以便它们可以根据自己的实现采取行动,我必须更改(在这种情况下 ..
发布时间:2022-01-24 16:44:49 C#/.NET

编译器何时可以将调用静态绑定到虚函数?

如果类的类型在编译时已知(例如,如果没有通过引用或指针使用类实例,如案例 1) 下面). 但是,我观察到 Visual Studio 2010 的 C++ 编译器有一个奇怪的行为,我想知道编译器是否有任何理由在类的实例时不将调用静态绑定到“正确的"虚函数带有虚函数的是结构中的成员,通过引用访问. 我是否应该期望编译器在下面的情况 2) 中静态绑定对 f() 的调用?即使 a 是 A 而 ..

详细说明:方法重载是静态/编译时绑定,但不是多态性.将静态绑定与多态性相关联是否正确?

在我提出问题之前,让我解释一下我的理解和看法. 除非有向上转换,否则仅通过覆盖我们无法实现多态性.由于它只能在运行时看到,人们可能将其命名为运行时多态.(我不反对将多态性称为运行时多态性) 我反对将方法重载称为编译时多态或多态性. 我同意方法重载是静态绑定(编译时绑定),但我看不到多态性. 根据javadoc,只有多态.没有编译时或运行时多态性. 根据 javadoc 在 ..

策略类设计,但没有使整个用户类成为模板

考虑以下代码,其中 Writer_I 充当接口.其他符合以正确形式编写元素类型的约定的类可以从它派生.这里,printf 和流被选为策略,Calculator 作为用户. 该接口以某种方式存储在 Calculator 中,而 write_i 隐藏了模板的所有丑陋细节,以便类成员函数保持干净.大多数事情在编译时仍然是已知的,并且可以内联. 我知道这是基于虚拟 + 派生的多态性的经典案例, ..
发布时间:2022-01-24 16:44:00 C/C++开发