abstract-class相关内容

如何在 C++ 中模拟接口?

由于 C++ 缺少 Java 和 C# 的 interface 特性,那么在 C++ 类中模拟接口的首选方法是什么?我的猜测是抽象类的多重继承.在内存开销/性能方面有什么影响?此类模拟接口是否有任何命名约定,例如SerializableInterface? 解决方案 由于 C++ 与 C# 和 Java 不同,具有多重继承,所以您可以制作一系列抽象类. 至于约定,由您决定;然而,我喜 ..
发布时间:2021-11-26 16:55:34 C/C++开发

java.util.AbstractList.add 处的 UnsupportedOperationException

我在让代码块正常运行时遇到问题.我不完全确定这段代码是做什么的(我试图让一个过时的插件与我们的服务器一起正常工作),我只知道它每运行 20 分钟就会抛出一个错误.这是发生问题的代码部分: public class DynamicThread extends Thread {私人 LocalShops 插件 = null;公共动态线程(线程组 tgroup,字符串 tname,LocalShops ..
发布时间:2021-11-26 16:55:13 Java开发

相当于 Python 中字段的 NotImplementedError

在 Python 2.x 中,当您想将方法标记为抽象方法时,您可以像这样定义它: 类基础:def foo(self):raise NotImplementedError("子类应该实现这个!") 然后如果你忘记覆盖它,你会得到一个很好的提醒异常.是否有等效的方法将字段标记为抽象?或者你只能在类文档字符串中说明它? 起初我以为我可以将字段设置为 NotImplemented,但是当我查看它 ..
发布时间:2021-11-26 16:54:55 Python

如何以及何时使用抽象类

这是我的 Java 测试程序.我想知道这里有多少抽象类更重要,为什么我们为此使用抽象类. 是强制性的还是最好的方法;如果是这样怎么办? class Shape1 {国际我= 1;无效画(){System.out.println("这是形状:" + i);}}类形状 2 {国际我= 4;无效画(){System.out.println("这是shape2:" + i);}}类形状{公共静态无 ..
发布时间:2021-11-26 16:54:45 Java开发

测试抽象类

如何使用 PHPUnit 测试抽象类的具体方法? 我希望我必须创建某种对象作为测试的一部分.不过,我不知道这样做的最佳实践,或者 PHPUnit 是否允许这样做. 解决方案 抽象类的单元测试并不意味着测试接口,因为抽象类可以有具体的方法,而这些具体的方法是可以被测试的. 在编写一些库代码时,您希望在应用程序层中扩展某些基类并不少见.而如果要确保库代码经过测试,则需要对抽象类的具 ..
发布时间:2021-11-26 16:54:34 其他开发

C++ 中的抽象类与接口

可能的重复: 如何在 C++ 中声明接口? 这是一个关于 C++ 的一般问题.如您所知,与 Java 和 C# 不同,C++ 中的 interface 和 abstract class 之间没有明显区别.什么时候在 C++ 中使用 interface 而不是 abstract class 更可取?你能举几个例子吗? 解决方案 我假设 interface 是指只有 纯虚 方法(即没有 ..
发布时间:2021-11-26 16:54:22 C/C++开发

继承一个没有任何构造函数的抽象类

我想从另一个类继承一个类,标记为抽象的,没有定义任何构造函数. 这是我的代码: //在一个程序集 (TheMessage.dll) 中,如通过 VS 中的 F12 看到的(来自元数据)命名空间命名空间1{公共抽象类消息{公共字符串正文{获取;放;}//这里有一些抽象方法,没有显示.}}//在另一个程序集中 (TheUser.dll)命名空间 Namespace2{公共类 MyMessage ..
发布时间:2021-11-26 16:54:09 C#/.NET

使用 Gson 和抽象类

我正在尝试使用 GSON 在客户端和服务器之间交换消息. 问题如下: 我有这个结构: 公共类消息{私有 TypeOfContent 类型;//这是一个枚举私人内容内容;....} 那么对象内容可以是各种类的集合. 我在这里和这里,但没有一个能解决问题.> 编辑 1: 类消息是这样的: 公共类 Mensagem{私人 TipoMensagem 类型;私人 Conteu ..
发布时间:2021-11-26 16:53:57 Java开发

在Java中为抽象类创建构造函数有什么用?

我想知道抽象类的构造函数的用途是什么;因为我们没有实例化抽象类,为什么我们需要这样的构造函数? 解决方案 有时您需要对所有继承类都需要设置的实例变量进行一些通用初始化.在扩展抽象类时确实实例化了它,并且该具体类具有一个构造函数,该构造函数将向抽象类的构造函数提供参数. ..
发布时间:2021-11-26 16:53:47 Java开发

从函数返回抽象类

是否可以从函数返回抽象类(类本身或引用,无所谓)? 解决方案 你可以返回一个抽象类指针 - 假设 B 是一个从抽象类 A 派生的具体类: A * f() {返回新的B;} 或参考: A &F() {静态 B b;返回 b;} 或智能指针: std::unique_ptrF() {返回 std::make_unique(...);} ..
发布时间:2021-11-26 16:53:36 C/C++开发

函数定义上的纯说明符

在 GCC 上编译时,我收到 error: pure-specifier on function-definition,但在我使用 VS2005 编译相同的代码时却没有. class Dummy {//错误:函数定义上的纯说明符,VS2005编译虚拟无效进程()= 0 {};}; 但是当这个纯虚函数的定义不是内联时,它是有效的: class Dummy{虚拟无效进程()= 0;};void ..
发布时间:2021-11-26 16:53:25 C/C++开发

为什么在java中嵌套抽象类

我想知道嵌套抽象类是什么意思?例如, 抽象类 A{抽象类 B{}} 是否有我们可能需要的用例或场景,例如设计?或者在这种模式中有什么有用的东西吗?为什么 Java 允许我们这样做? 解决方案 在设计中,您希望基类 class A 仅呈现其派生类的接口.这意味着,您不希望任何人实际实例化基类的对象.您只想向上转换(隐式向上转换,它为您提供多态行为),以便可以使用它的接口.这是通过使用 ..
发布时间:2021-11-26 16:53:17 Java开发

java中接口的实际用途是什么?

可能的重复: 抽象类和接口类? Java:接口/抽象类/抽象方法 在Java中,任何接口的使用都是由抽象类来实现的.我知道接口的一个优点是,如果我们实现一个接口,那么我们还可以扩展另一个类.Java 中的接口还有其他用途或优势吗? 解决方案 你喜欢什么:在一个抽象类中有数千个抽象方法并继承这个类,或者为特定的抽象方法制作尽可能多的接口,并通过继承只使用你想要的那些根据需要尽可能多 ..
发布时间:2021-11-26 16:53:08 Java开发

C#:抽象类需要实现接口吗?

我在 C# 中的测试代码: 命名空间DSnA{公共抽象类测试:IComparable{}} 导致以下编译器错误: error CS0535: 'DSnA.Test' 没有实现接口成员'System.IComparable.CompareTo(对象)' 既然Test类是一个抽象类,为什么编译器需要它来实现接口?这个要求不应该只是对具体类强制性吗? 解决方案 在 C# 中,实现接口的类 ..
发布时间:2021-11-26 16:52:59 C#/.NET

在 dll 接口中使用 shared_ptr

我的 dll 中有一个抽象类. class IBase {受保护:虚拟 ~IBase() = 0;民众:虚空 f() = 0;}; 我想在加载 dll 的 exe 文件中获取 IBase.第一种方法是创建以下函数 IBase * CreateInterface(); 并在IBase中添加虚函数Release(). 第二种方法是创建另一个函数 boost::shared_ptr创建接 ..
发布时间:2021-11-26 16:52:51 C/C++开发

在 C++ 中使用接口的性能损失?

在 C++ 中使用接口(抽象基类)时是否有运行时性能损失? 解决方案 简短回答:否 长答案:影响速度的不是基类或类在其层次结构中的祖先数量.唯一的问题是方法调用的成本. 非虚方法调用有成本(但可以内联) 虚拟方法调用的成本稍高,因为您需要在调用之前查找要调用的方法(但这是一个简单的表查找不是搜索).由于接口上的所有方法根据定义都是虚拟的,因此存在此成本. 除非您正在编写 ..
发布时间:2021-11-26 16:52:43 C/C++开发

在 Dart 中何时使用 mixins 以及何时使用接口?

我对接口和抽象类的概念非常熟悉,但对mixins的概念不是很熟悉. 现在,在 Dart 中,每个类 A 都定义了一个隐式接口,该接口可以由另一个类 B 使用 implements 实现关键词.没有明确的方式来声明接口,例如,在 Java 中,接口只包含未实现的方法(以及最终的静态变量).在 Dart 中,由于接口是由类定义的,接口 A 的方法实际上可能已经实现了,但是实现了 B 的类仍然需要 ..
发布时间:2021-11-26 16:52:31 其他开发

如何在python抽象类中创建抽象属性

在下面的代码中,我创建了一个基础抽象类Base.我希望从 Base 继承的所有类都提供 name 属性,因此我将此属性设为 @abstractmethod. 然后我创建了一个 Base 的子类,称为 Base_1,它旨在提供一些功能,但仍然是抽象的.Base_1 中没有 name 属性,但是 python 会在没有错误的情况下设置该类的对象.如何创建抽象属性? from abc impor ..
发布时间:2021-11-26 16:52:21 Python

在 TypeScript 中扩展与实现纯抽象类

假设我有一个纯抽象类(即没有任何实现的抽象类): 抽象类 A {抽象 m(): void;} 就像在 C# 和 Java 中一样,我可以扩展抽象类: B 类扩展 A {m():无效{}} 但是与在 C# 和 Java 中不同,我也可以实现抽象类: C 类实现 A {m():无效{}} B 和 C 类的行为有何不同?为什么我会选择一个而不是另一个? (目前,TypeScript 手 ..
发布时间:2021-11-26 16:52:13 其他开发