abstract相关内容

是否可以在 Python 中创建抽象类?

如何在 Python 中使类或方法抽象? 我尝试重新定义 __new__() 像这样: F 类:def __new__(cls):raise Exception("无法创建抽象类 %s 的实例" %cls) 但是现在如果我创建一个从 F 继承的类 G 像这样: G(F) 类:经过 然后我也不能实例化 G,因为它调用了它的超类的 __new__ 方法. 有没有更好的方法来定义抽象 ..
发布时间:2021-11-26 16:44:35 Python

Java - 抽象类、equals() 和两个子类

我有一个名为 Xpto 的抽象类和两个扩展它的子类,名为 Person 和 Car.我还有一个名为 Test 的类,带有 main() 和一个方法 foo(),用于验证两个人或汽车(或扩展 Xpto 的类的任何对象)是否是等于.因此,我在 Person 和 Car 类中重新定义了 equals().两个人同名时相等,两辆车同名时相等. 但是,当我在 Test 类中调用 foo() 时,我总是 ..
发布时间:2021-11-26 16:42:14 Java开发

Visual Studio:设计一个派生自抽象基类的 UserControl 类

我想要为我的一些自定义 UserControl 的一些抽象基类. 原因很明显:它们共享一些公共属性和方法(一个基本实现实际上是接口的某些元素),我只想实现它们一次. 我通过定义我的抽象基类来做到这一点: 公共抽象类 ViewBase : UserControl, ISomeInterface 然后我像往常一样和设计师一起去实现我的一个观点: public partial class S ..
发布时间:2021-11-26 16:42:01 其他开发

f#中受保护的虚拟方法

F# 不支持protected 方法的定义.这里解释了为什么 F# 将 virtual 方法替换为在抽象类中定义的 abstract 方法(请参阅 此处). 我想知道是否有办法完全阻止从派生类外部访问 abstract 方法. 解决方案 和 Patryk Ćwiek 一样,我也不认为这是可能的,但这里有一个替代方案: 从设计模式我们知道我们应该偏爱组合而非继承.根据我的经验, ..
发布时间:2021-11-26 16:41:50 其他开发

Haskell 中的抽象数据类型与参数多态性

我试图掌握这两个概念之间的关系. 首先考虑一个抽象数据类型的例子: 数据树 a = Nil|节点 { 左 :: 树 a,价值 :: 一个,右 :: 树 a } 根据 Haskell 维基: 这种类型是抽象的,因为它没有定义其结构的某些方面,由数据类型的用户提供.这是抽象数据类型的弱形式.来源 现在考虑参数多态性的概念: 参数多态是指当一个值的类型包含一个或多个(不受约束 ..
发布时间:2021-11-26 16:41:43 其他开发

在java中覆盖静态的替代方法

我想知道:将属性拟合到属于大型继承结构的类的最佳方法是什么.我想创建一个抽象的静态方法,每个类都会覆盖该方法,但是经过一个似乎不起作用的快速谷歌.有什么建议? 我可以把它变成一个实例方法,但它确实是一个类级别的规范. 提前致谢. 解决方案 我建议你创建一个抽象方法,就像你想到的那样,让这个方法在每个类的静态变量中实现. > 抽象类 Base {抽象字符串 getValue( ..
发布时间:2021-11-26 16:41:36 Java开发

强制子类从 SuperClass 到 @Override 方法.SuperClass中的方法必须有主体

我想从 SuperClass 强制 SubClasses 到 @Override 方法. SuperClass 中的方法不能是 abstract,因为我想提供一些基本的实现. 这是我的代码示例: 公共抽象类GenericModel{长 ID,计数器;公共字符串方法ToBeOverridenInSubClass(字符串名称){//一些基本的实现//其余细节将由子类提供返回名称;}}公共 ..
发布时间:2021-11-26 16:41:19 Java开发

C# 方法属性强制要求如抽象或静态?

这可能更像是一个设计问题,而不是“我可以这样做吗?"题.我正在创建一个属性,其目标被定义为方法.有没有办法对方法域施加限制,即目标方法必须声明为抽象、虚拟、静态等? 最终目标是扫描这些方法并在子类中实现它们——但是我希望它们是抽象的.有没有更好的方法来实现对我的属性目标的这种伪限制? 解决方案 您应该能够使用 MethodInfo.IsVirtual 和 MethodInfo.IsA ..
发布时间:2021-11-26 16:41:08 C#/.NET

Java - 强制实现已实现的方法

我有三个课程有问题.它们被命名为:GameScene、StageScene、StageOne.我的问题是我想在 StageScene 中实现 initialize,但仍然强制 StageOne 实现它,这样每当有人使用 StageOne 对象 (stageOne.initialize()) 时,都会为 StageScene 和 StageOne 运行 initialize.有谁知道如何做到这一点? ..
发布时间:2021-11-26 16:41:00 Java开发

Delphi 6:在缺少抽象类方法时强制编译器错误?

我正在使用 Delphi Pro 6.现在,知道一个类是否缺少基类抽象方法的唯一方法是等待 IDE 发出一个“{派生类} 的构造实例,其中包含抽象方法 {base class.abstract method name}"警告或在尝试调用丢失的方法时等待运行时抽象错误方法.前者是不够的,因为它只为当前项目中实际构建的那些派生类找到警告.后者简直就是痛苦. 如果 Delphi 为所有未立即声明/ ..
发布时间:2021-11-26 16:40:49 其他开发

Python抽象属性()“不能用抽象方法实例化抽象类[]",但我做到了

我正在尝试在 python 3.7 中创建一个具有许多抽象 python 属性的基类. 我使用@property、@abstractmethod、@property.setter 注释尝试了一种方式(参见下面的“开始").这有效,但如果子类没有实现 setter,它不会引发异常.这就是对我使用@abstract 的意义所在,所以这不好. 所以我尝试使用两个@abstractmethod ..
发布时间:2021-11-26 16:40:41 Python

为什么抽象类实例化不是 dart 中的运行时错误?

在许多语言中,如果您尝试实例化抽象类,则会出现编译时错误.但是,在 Dart 中,您会在编译时收到警告和运行时异常 AbstractClassInstantiationError. 这是为什么?有人可以提供一个例子,编译这样的代码是合理的吗? 解决方案 Dart 试图让您在开发程序的同时运行它.这就是为什么许多其他语言中的编译时错误在 Dart 中是编译时警告和运行时错误的原因.这包 ..
发布时间:2021-11-26 16:40:31 其他开发

在 UNKNOWN DB 中存储 IPv6 的最佳方式?

我知道这个问题已经被问过很多次了,但我找不到任何最终的解决方案;所以这里是: 如何使用最佳实践在数据库中存储 IP(IPv4 和 IPv6)而不知道数据库?这是用于数据库抽象目的的情况,例如 PHP PDO. 顺便提一下,我有 PHP 5.2.17,因为我在 Windows 上需要 PEAR. 人们一直建议将其存储为 varbinary(16) 并使用 mysql 函数 inet ..
发布时间:2021-11-26 16:40:17 其他开发

如何修复“CA1810:内联初始化引用类型静态字段"有一个抽象的基础......?

这是我拥有的代码的简化部分: 抽象类DataManager{protected static Dictionary价值观;} 然后我有: class TextManager : DataManager{静态文本管理器(){Values = ...//填充数据}} 而且,现在我得到了 CA1810.我看到了一些解决方案,比如公开 Values 并将它们设置在其他地方,但我不喜欢那样,或者在 ..
发布时间:2021-11-26 16:40:06 C#/.NET

JLS 如何指定术语“抽象方法"、“具体方法"?和“默认方法"?

我在某些 StackOverflow 答案中看到了术语抽象方法、具体方法和默认方法的“不同"定义. Java 语言规范给出的真正定义是什么?请在您的答案中包含相关的支持 JLS 参考. 解决方案 下面的链接/部分编号取自 Java 11 版本的 Java 语言规范. 根据 JLS8.4.3.1: "abstract 方法声明将方法作为成员引入,提供其签名(第 8.4.2 ..
发布时间:2021-11-26 16:39:46 Java开发