abstract-class相关内容

C++:不能将字段声明为抽象类型

我在编译时遇到此错误 -> 无法将字段 M1::sc 声明为抽象类型 I1,因为以下虚函数在 I1 中是纯的.请帮忙. 类 I1{民众:虚空 a(int dir) = 0;虚拟无效 b() = 0;虚拟无效 c() = 0;void a(int dir) {....}无效b(){....}无效c(){....}};I2 类:公共 I1{民众:void a(int dir) {....}无效b( ..
发布时间:2021-11-26 17:14:28 C/C++开发

通过基类创建派生类的实例,无需硬编码

我的问题如下: 我有一个需要抽象的基类.它有几个派生类,每个派生类都有自己的特殊属性,这些属性包含在 Properties 成员中. 我需要能够创建这些派生类之一的新实例,以便所有成员都等效,但修改新实例不会修改原始实例. 最后,我希望不必在基类的每个派生类型中进行硬编码.(诚​​然,这将是最简单的解决方案,但这不是重点) 所有派生类都满足与基类的“is-a"关系. ..
发布时间:2021-11-26 17:14:17 C#/.NET

空抽象类是一种不好的做法,为什么?

我们的代码库中有几个空的抽象类.我觉得那很丑.但除了这个非常愚蠢的原因(丑陋),我是否应该重构它(例如,变成空界面)? 否则,代码是健壮的并且经过良好测试.所以如果只是出于“审美"的原因,我会通过,让空的抽象类保留. 你怎么看? 编辑: 1) 通过“空抽象类",我的意思是: 公共抽象类EmptyAbstractClass {} 2)“空"的原因:休眠.我根本不掌握这个持 ..
发布时间:2021-11-26 17:14:07 Java开发

需要抽象类和接口吗?

接口是 100% 抽象类,因此我们可以使用接口进行高效编程.有没有抽象类比接口更好的情况? 解决方案 当你打算创建一个具体的类时使用抽象类,但要确保所有子类中都有一些共同状态或某些操作的可能通用实现. 接口不能包含两者. ..
发布时间:2021-11-26 17:13:57 Java开发

如何使用 moq 测试抽象类中的具体方法?

过去,当我想模拟一个抽象类时,我只是在扩展抽象类的代码中创建一个模拟类,然后在我的单元测试中使用该类... 公共抽象类 MyConverter : IValueConverter{公共抽象对象 Convert(...);公共虚拟对象 ConvertBack(...) { ... }}私有密封类 MockedConverter : MyConverter { ... }[测试方法]public v ..
发布时间:2021-11-26 17:13:46 C#/.NET

C++:用抽象方法创建抽象类并覆盖子类中的方法

如何在 C++ 中创建一个抽象类,其中包含一些我想在子类中覆盖的抽象方法?.h 文件应该是什么样的?有没有.cpp,如果有的话应该怎么看? 在 Java 中,它看起来像这样: 抽象类 GameObject{公共抽象无效更新();公共抽象无效油漆(图形g);}类 Player 扩展了 GameObject{@覆盖公共无效更新(){//...}@覆盖公共空心漆(图文g){//...}}//在我 ..
发布时间:2021-11-26 17:13:38 Java开发

C++ 抽象基类构造函数/析构函数 - 一般正确性

我想要一个 C++ Interface,它在继承时必须被覆盖(如果可能的话).到目前为止,我有以下内容: class ICommand{民众://虚拟构造函数.需要取名字作为参数//虚拟ICommand(char*) =0;//虚拟析构函数,通过强制清理派生类来防止内存泄漏?//虚拟 ~ICommand() =0;虚空 CallMe() =0;虚拟无效 CallMe2() =0;};类 MyCo ..
发布时间:2021-11-26 17:13:29 C/C++开发

java强制扩展类

在 Java 中,我能否以某种方式强制扩展抽象类的类以对象作为参数实现其构造函数? 类似的东西 公共抽象类点{//添加一些抽象方法来强制构造函数具有对象.}公共类扩展点扩展点{/*** 我希望抽象类强制此实现具有* 一个带有对象的构造函数?* @param o*/公共扩展点(对象 o){}} 解决方案 您可以在抽象类中使用带有参数的构造函数(如果您想禁止匿名子类,请使其受保护). 公 ..
发布时间:2021-11-26 17:13:18 Java开发

django rest 框架抽象类序列化器

我有一些这样的模型: class TypeBase(models.Model):name = models.CharField(max_length=20)元类:抽象=真类 PersonType(TypeBase):经过类公司类型(TypeBase):经过 有了这个,我只想创建一个序列化器来保存所有这些字段类型(序列化、反序列化、更新和保存). 更具体地说,我只需要一个序列化程序 (Ty ..
发布时间:2021-11-26 17:13:10 Python

C# 中是否有任何方法可以在派生类中强制执行运算符重载?

我需要定义一个接口,它必须对实现它的类型强制执行某些运算符重载.似乎没有明显的方法可以做到这一点,因为必须使用类中的静态方法来完成运算符重载.有没有办法达到同样的效果(使用抽象类或其他任何东西)? 解决方案 有点小技巧,但是... 您可以在基类中提供运算符重载,然后在其中一个类中调用一些已发布的抽象方法来完成工作. 公共抽象类MyClass{公共静态 MyClass 运算符 +(M ..
发布时间:2021-11-26 17:13:00 C#/.NET

等效于 C++ 中的 Java 接口?

可能的重复: 如何在 C++ 中声明接口? c++中的java接口? 我是一名学习 C++ 的 Java 程序员,我想知道 C++ 中是否有类似 Java 接口的东西,即另一个类可以实现/扩展多个的类.谢谢.附言新来的,如果我做错了什么,请告诉我. 解决方案 在 C++ 中,一个只包含纯虚方法的类表示一个接口. 示例: //定义Serializable接口.类可序列化{/ ..
发布时间:2021-11-26 17:12:52 Java开发

抽象类的目的是什么?

我正在尝试在 PHP 中学习 OOP,但我对接口和抽象类有些困惑.它们都没有实现,只有定义,并且应该通过它们的子类来实现.抽象类的哪一部分清楚地将它们与接口区分开来?此外,由于它们明显的相似性,我应该基于什么原因决定使用一种而不是另一种? 解决方案 可以创建包含具体成员(例如方法或属性)的抽象类.您仍然无法直接实例化抽象类,但任何实例化的子类都可以从抽象类中定义的已实现成员中受益. ..
发布时间:2021-11-26 17:12:42 PHP

python中的抽象类+mixin+多重继承

所以,我认为代码可能比文字更能解释我想要做的事情,所以这里是: 导入 abc类 foo(对象):__元类__ = abc.ABCMeta@abc.abstractmethod定义栏(自我):经过类 bar_for_foo_mixin(object):定义栏(自我):打印“这应该满足抽象方法要求"类 myfoo(foo, bar_for_foo_mixin):def __init__(self): ..
发布时间:2021-11-26 17:12:21 Python

抽象类与所有方法抽象和接口的区别?

我有一次面试,面试官首先问我抽象类和接口的所有方法有什么区别. 我回答说,如果以后需要继承一些东西,如果你已经扩展了一个类,你将无法做到. 然后,他说在这种情况下,您永远不必扩展任何其他类,而您必须实施合同.在这种情况下,抽象类和接口哪个更好? 我告诉他你可以使用它们中的任何一个,但他不满意.我不明白为什么 - 我相信这是开发人员/设计的选择. 解决方案 声明接口代表契约 ..
发布时间:2021-11-26 17:12:12 Java开发

VBA:有抽象类之类的东西吗?

我使用一个接口来确保一些类似的类实现了一些强制方法(子/函数). 示例: 接口 I1 声明了 M1 和 M2 方法 C1 和 C2 实现了 I1,并且有自己的 M1 和 M2 版本. C1 和 C2 也需要完全相同的方法,例如方法 SM1 和 SM2. 为了避免重复 SM1 和 SM2,我想定义一个抽象类 AC: 实施 I1 定义 SM1 和 SM2. 由 ..
发布时间:2021-11-26 17:12:00 其他开发

C#:在不定义新类的情况下创建抽象类的实例

我知道它可以在 Java 中完成,因为我过去广泛使用过这种技术.下面将显示 Java 中的一个示例.(附加问题.这种技术叫什么?如果没有名字,很难找到这样的例子.) 公共抽象类示例{公共抽象无效 doStuff();}公共课从这里开始{公共静态无效主(字符串 [] args){示例 x = 新示例(){公共无效 doStuff(){System.out.println("做了东西");}};x. ..
发布时间:2021-11-26 17:11:41 C#/.NET

C#中的抽象构造函数

可能的重复: 为什么我不能创建抽象 C# 类上的抽象构造函数? 为什么我不能像这样声明我的类的抽象构造函数: 公共抽象类 MyClass {公共抽象 MyClass(int param);} 解决方案 构造函数只适用于定义它们的类,即不能被继承.使用基类构造函数(您必须调用其中之一,即使仅自动调用默认构造函数)但不会被派生类覆盖.您可以在抽象基类上定义构造函数——它不能直接使用,但可 ..
发布时间:2021-11-26 17:11:31 C#/.NET

如何在 Python 中定义抽象类的构造函数实现?

我试图声明一个抽象类 A 带有默认行为的构造函数:所有子类都必须初始化一个成员 self.n: from abc import ABCMetaA类(对象):__元类__ = ABCMetadef __init__(self, n):self.n = n 然而,我不想让 A 类被实例化,因为它是一个抽象类.问题是,这实际上是允许的: a = A(3) 这不会产生任何错误,而我希望它应该这样做 ..
发布时间:2021-11-26 17:11:23 Python

Java抽象类和接口

在面试中,我被问到以下问题.我试图回答这个问题,但我想要这个问题的确切答案. 如果我可以将抽象类模拟为接口,为什么java提供接口? 这意味着如果在抽象类中我可以将所有方法标记为抽象,然后抽象类将作为接口工作,那么为什么我需要接口. 谁能简单解释一下. 解决方案 这是一个非常标准的面试问题.答案是:因为你可以实现多个接口,但不能扩展多个抽象类. 来自 JRE 的示例 ..
发布时间:2021-11-26 17:11:12 Java开发