abstract-class相关内容

如何创建抽象类和接口的对象

如何创建抽象类和接口的对象?我知道我们不能直接实例化抽象类的对象. 解决方案 您不能实例化抽象类或接口 - 您可以实例化它们的一个子类/实现器. 这种事情的例子在 Java 集合的使用中很典型. ListstringList = new ArrayList(); 您使用接口类型 List 作为类型,但实例本身是 ArrayList. ..
发布时间:2021-11-26 16:59:11 Java开发

具有所有具体方法的抽象类

当类中的所有方法都是具体的时,是否有一些实际的编程情况让某人声明一个抽象类? 解决方案 好吧,您可以使用模板方法模式,其中有多个覆盖点,它们都有默认实现,但组合的默认实现本身不合法 - 任何函数式实现必须子类化. (是的,我不喜欢模板方法模式;)) ..
发布时间:2021-11-26 16:58:58 Java开发

为什么我们需要 Java 中的抽象类?

为什么我们需要 Java 中的抽象类?如果你永远不会把它变成一个对象,为什么首先要拥有它?你如何使用它?为什么会在那里?我想知道抽象方法也有同样的事情.我发现这似乎与拥有一个没有可能重要的子类的超类类似. 解决方案 抽象类可以用作其他类的模板类型.抽象类将拥有扩展它的所有类的通用功能. 例如: 抽象类动物 所有动物都会移动、呼吸和繁殖,因此可以将它们放入动物类. 现在 ..
发布时间:2021-11-26 16:58:51 Java开发

错误:“不能在没有主体的方法上使用‘异步’".如何强制异步子覆盖?

我正在开发一个系统,在该系统中,多个客户端对象需要通过接口实现特定功能,并且我希望该功能与延续异步运行(我希望实现是 I/O 绑定的并希望确保所有客户端对象尽快完成此功能).我正在使用 Visual Studio Async CTP Refresh for SP1,使用 C#“5.0". 在我的抽象类的子对象中强制执行异步行为的推荐做法是什么(见下文)?我不能(显然)使用虚拟方法方法强制使用 ..
发布时间:2021-11-26 16:58:39 C#/.NET

为什么我们不能在 Java 中实例化抽象类?

我明白: 因为抽象类本身什么都不是,例如车辆,我们想创建一个具体实现的对象,如汽车、自行车等. 抽象类的构造函数在对象链接期间被调用. 我们永远不能直接创建抽象类的对象,即使它包含一个构造函数并且所有方法都已实现. 但从编译器的角度来看,为什么 Java 会强制执行这些规则? 解决方案 这不是技术限制,而是(如您所指出的)合乎逻辑的限制.Java(和许多其他语言)强制执行各 ..
发布时间:2021-11-26 16:58:32 Java开发

即使我们无法创建抽象类的实例,为什么 Java 中的抽象类中有一个私有访问修饰符?

我知道在 abstract 类中将方法声明为 private 不是一个好的编码习惯.即使我们无法创建 abstract 类的实例,为什么 private 访问修饰符在 abstract 类中可用,以及作用域是什么它在 abstract 类中?private 访问说明符在哪种情况下用于 abstract 类? 查看这段代码,其中Vehicle 类是抽象类,Car 扩展了 Vehicle. p ..
发布时间:2021-11-26 16:58:24 Java开发

LINQ to SQL - 使用抽象基类时的映射异常

问题:我想在多个程序集之间共享代码.此共享代码需要与 LINQ to SQL 映射类一起使用. 我在此处遇到了同样的问题,但我也遇到过找到了一个我觉得麻烦的解决方法(我不会说“错误"). 以下所有代码都可以在本方案下载. 鉴于此表: 创建表用户(Id int identity(1,1) 非空约束 PK_Users 主键, 名称 nvarchar(40) 不为空, 电子邮件 nv ..
发布时间:2021-11-26 16:58:17 C#/.NET

PHP抽象属性

有没有办法在 PHP 中定义抽象类属性? 抽象类 Foo_Abstract {抽象公共 $tablename;}类 Foo 扩展 Foo_Abstract {//Foo 必须“实现"$property公共 $tablename = '用户';} 解决方案 没有定义属性这样的东西. 您只能声明属性,因为它们是初始化时保留在内存中的数据的容器. 另一方面,函数可以被声明(类型、名称、 ..
发布时间:2021-11-26 16:58:08 PHP

抽象类和特征之间的区别

可能的重复: Scala 特征与抽象类 抽象类和特征之间的概念区别是什么? 解决方案 一个类只能扩展一个超类,因此只有一个抽象类.如果你想组合几个类,Scala 的方法是使用 mixin class composition:你组合一个(可选)超类、您自己的成员定义和一个或多个特征.与类相比,trait 受到限制,因为它不能有构造函数参数(比较 scala 参考手册). 引入了 ..
发布时间:2021-11-26 16:57:56 其他开发

从抽象类继承静态变量

我有六个类,它们都扩展了同一个抽象类.抽象类有一个指向一些 JNI 代码的静态变量,我只想在每次实例化类时加载一次. 据我所知,这会导致这个静态变量的一个实例被实例化,但我想要的是每个扩展类都有自己的静态变量实例,该实例对于给定的子类是唯一的.我想在我的抽象类中编写一些修改和/或释放抽象类的代码.是否可以同时做这两件事? 作为一个例子,我可以编写一个带有变量 foo 的抽象类 bar ..
发布时间:2021-11-26 16:57:47 Java开发

调用构造函数是否意味着创建对象?

当我们创建一个扩展抽象类的子类对象时,抽象类构造函数也会运行.但是我们知道我们不能创建抽象类的对象.那么是不是意味着即使构造函数无异常运行完成,也不能保证是否创建了对象? 解决方案 因此这是否意味着即使构造函数完成运行无一例外,不能保证一个对象是否是创建? 简单地说,构造函数不会创建对象.它只是初始化对象的状态.创建对象的是 new 操作符.现在,让我们稍微详细地了解一下. ..
发布时间:2021-11-26 16:57:38 Java开发

PHP 类型提示与接口和抽象类不符?

我认为在代码示例中看到问题比首先编写问题要容易得多.这是我的php代码: method();}}$Object1 = new ConcreteClass();$Object2 = new AClass();$Object1->method( $Object2 ); 以上代码导致如下错误: 致命错误:ConcreteClass::method() 的声明必须与 AnAbstractClas ..
发布时间:2021-11-26 16:57:30 PHP

传递接口和重载类之间的性能差异

有一个共识 使用接口比使用类更好.我当然同意:接受 ArrayList 而不是 List 的库方法将是废话. 人们也一致认为性能始终相同.在这里,我的基准 有所不同.接口和抽象类都有 1 到 4 个实现.当使用两个以上的实现时,性能开始出现分歧.我正在寻找对这种行为的解释(以及错误共识的起源). 解决方案 人们一致认为使用接口比使用类更好. 这太简单了.接口和抽象类各有优势 ..
发布时间:2021-11-26 16:57:19 Java开发

Python中的抽象方法

我需要类似 Python (3.2) 中的 abstract protected 方法: class 摘要:def use_concrete_implementation(self):打印(self._concrete_method())def _concrete_method(self):引发 NotImplementedError()类混凝土(抽象):def _concrete_method ..
发布时间:2021-11-26 16:57:08 Python

抽象类的具体使用

抽象类的确切用途是什么?不可能在普通类中做与抽象类相同的事情吗? 解决方案 使用抽象类来提供一些具体的实现,但不允许实例化.你总是可以实例化一个普通的类,如果它不能独立存在就没有意义.同时,如果有一个在所有实现类中都相同的具体实现,那么一个接口可能还不够.一个抽象类就足够了. 接口:只有契约,没有实现,没有实例化 抽象类:契约,一些实现,没有实例化 类:契约、实现、实例化 ..
发布时间:2021-11-26 16:56:48 C#/.NET

TypeScript 中的抽象构造函数类型

TypeScript 中非抽象类(非抽象构造函数)的类型签名如下: 声明类型 ConstructorFunction = new (...args: any[]) =>任何; 这也称为 newable 类型.但是,我需要一个 abstract 类(抽象构造函数)的类型签名.我知道它可以被定义为具有 Function 类型,但这方式太宽泛了.没有更精确的替代方法吗? 编辑: 为了澄清 ..
发布时间:2021-11-26 16:56:41 其他开发

抽象类数组

为什么我不能实例化一个抽象类,而是创建一个抽象类的数组? 公共抽象类游戏{...}游戏游戏 = 新游戏();//错误游戏[] gamesArray = 新游戏[10];//没有错误 解决方案 Game[] gamesArray = new Game[10]; 实例化意味着创建一个类的实例.在上面的场景中,您刚刚声明了一个 Game 类型的 gamesArray,大小为 10(只是引用,没有 ..
发布时间:2021-11-26 16:56:32 Java开发

Spring @ReponseBody @RequestBody 与抽象类

假设我有三个班级. 公共抽象类动物{}公共类 Cat 扩展了 Animal {}公共类狗扩展动物{} 我可以做这样的事情吗? 输入:一个 JSON,它是 Dog 或 Cat 输出:狗/猫取决于输入对象类型 我不明白为什么下面的代码不起作用.或者我应该使用两种不同的方法来处理新的狗和猫? @RequestMapping(value = "/animal", method = ..
发布时间:2021-11-26 16:56:22 其他开发