abstract-class相关内容

Java 8:虚拟扩展方法与抽象类

我正在研究 Java 8 接口中新的虚拟扩展方法: 公共接口 MyInterface {默认字符串 myMethod() {返回“我的实现";}} 我明白他们的目的是让接口随着时间的推移而发展,还有多重继承位,但对我来说,他们看起来非常像一个抽象类. 如果您正在做新工作,抽象类比扩展方法更受欢迎,以提供“接口"的实现,或者这两种方法在概念上是否等效? 解决方案 此类构造的一个主要 ..
发布时间:2021-11-26 17:11:04 Java开发

Android 中抽象类的最佳示例

我正在尝试在 Android 中设计一个抽象类和方法,并通过从我的父 Activity 类扩展类来调用这些方法,但我不知道如何调用我的抽象方法. 我的代码: MainActivity.java public class MainActivity extends MyActivity {@覆盖公共无效 onTest() {Log.d("MyLog", "onTest");} } My ..
发布时间:2021-11-26 17:10:53 移动开发

你能帮我在一个实际例子中理解抽象类与接口的用法吗?

您能否让我对抽象类与继承的使用有一个几乎过于简单化的理解,并帮助我真正理解这个概念以及如何实现?我有一个要完成的项目,但不知道如何实施.我一直在和我的教授聊天,并被告知很多,说如果我无法弄清楚,我可能还没有准备好参加这门课程.我已经涵盖了 prerequestite 课程,但仍然无法理解这些概念. 澄清一下,我到目前为止所做的项目如下.我还没有填写狗/猫课程等.能不能给个指点.我不是要求任何 ..
发布时间:2021-11-26 17:10:30 C#/.NET

您如何决定使用抽象类和接口?

重复:接口与基类 我一直在深入了解 OOP、设计模式和 actionscript 3 的世界,但我仍然很好奇如何知道何时使用抽象类(不支持抽象类的 AS3 的伪类)和接口.对我来说,两者都只是作为模板,确保在给定的类中实现某些方法.区别仅仅在于抽象类需要继承而接口只是扩展吗? 谢谢,布赖恩·霍奇hodgedev.com 解决方案 如果您希望它的子类具有某些功能,请使用抽象类.例 ..
发布时间:2021-11-26 17:10:21 其他开发

使用抽象类进行 Java 日志记录

我正在做一个项目,目前正在使用 log4j 实现一些日志记录,我很好奇我应该如何实现日志.我正在讨论的两个实现如下: 首选 为该类和所有子类使用来自超类的单个日志: 公共抽象类 AbstractFoo {受保护的静态日志日志 = LogFactory.getLog(AbstractFoo.class);...}公共类 Foo 扩展 AbstractFoo {公共无效一些方法(){LO ..
发布时间:2021-11-26 17:09:29 Java开发

python subclasscheck &子类钩子

方法 __subclasscheck__ 和 __subclasshook__ 用于确定一个类是否被视为另一个类的子类.然而,他们的文档非常有限,即使在高级 Python 书籍中也是如此.它们的用途是什么,它们的区别是什么(更高的优先级,它们所指的关系方面等......)? 解决方案 这两种方法都可以用来自定义 issubclass() 内置函数. __subclasscheck__ ..
发布时间:2021-11-26 17:09:11 Python

对 vtable 的未定义引用

我已经开始学习 C++,我已经知道 C 和 Java.我开始学习它是因为我想开始使用面向对象编程. 但是,我被代码困住了,因为编译器会生成“对 Actor 的 vtable 的未定义引用".在这里,您有生成相同错误的代码,而不是原始错误,因为它不太清楚.我真的不知道是什么原因造成的. struct Actor{整数 x, y;虚空移动();};struct Player : 演员{玩家(i ..
发布时间:2021-11-26 17:08:44 C/C++开发

抽象类中字段的可访问性应该是什么?

简单地举个例子, 公共抽象类 AbstractFellow {受保护的东西伙伴;....公共类 ConcreteFellow 扩展 AbstractFellow {公共无效一些方法(){buddy.doSomething();//或者哥们=别的东西;//或者别的东西 = 哥们;}} 这是不好的做法吗? 解决方案 意见不一.我的观点是,即使在抽象类中,使用私有成员和受保护的访问器(即 p ..
发布时间:2021-11-26 17:08:32 其他开发

在父类中实现抽象类成员

是否可以在 C++ 中使用从另一个父类继承的成员来实现抽象基类? 它在 C# 中工作,所以我尝试在 C++ 中这样做: //为简洁起见省略了虚拟析构函数类ITalk{民众:虚拟无效 SayHi() = 0;};班级家长{民众:void SayHi();};class Child : public Parent, public Italk{};void Parent::SayHi(){std ..
发布时间:2021-11-26 17:08:21 C/C++开发

为什么接口或抽象类有用?(或者为了什么?)

所以我的问题是,为什么要使用接口或抽象类?它们为什么有用,有什么用? 我可以在哪里智能地使用它们? 解决方案 接口允许您表达类型的功能,而无需担心它是如何完成的.可以在不影响客户的情况下随意更改实施方式. 抽象类就像接口,只是它们允许您为存在的方法提供合理的默认行为. 用法和示例取决于语言.如果您了解 Java,则可以在整个 API 中找到接口和抽象类的示例.java.u ..
发布时间:2021-11-26 17:08:09 其他开发

“进口"从基类定义一个函数来实现抽象接口(C++ 中的多重继承)

假设我们有一个继承自两个基类的类(多重继承).基class A是抽象的,声明了一个纯虚函数foo,另一个基class B声明并实现了一个函数foo完全相同的签名. 结构体A{虚拟无效 foo(int i) = 0;};结构体B{虚拟无效 foo(int i) {}};结构 C : 公共 A, 公共 B {}; 我想在派生的class C 中使用基础class B 的foo 实现.但是,如果我没 ..

非抽象 C# 类中的无体构造函数

我正在尝试理解 MVC 框架中提供的以下类;看起来这个类应该是抽象的,但它不是,但是这个类可以编译.尽管缺少“抽象"关键字,但该类实际上是抽象的吗?我在这里错过了什么? 命名空间 Microsoft.AspNet.Identity.EntityFramework{公共类 IdentityUser : IUser{公共身份用户();公共身份用户(字符串用户名);公共虚拟 ICollection索赔 ..
发布时间:2021-11-26 17:07:46 C#/.NET

使类抽象的主要优点是什么

为什么我们将类声明为抽象类?我知道它不能被实例化,但为什么要给它一个特殊的关键字.即使是“普通"类也能正常工作,并且可以轻松地进行子类化.那么抽象类的主要优点是什么? 解决方案 在抽象类中,你可以实现一些方法,也可以使一些抽象,所有你的客户也必须实现它.你可以提供一些通用的功能,也可以在这里有一些继承的字段和一些骨架方法 ..
发布时间:2021-11-26 17:07:37 Java开发

接口和抽象类广告方法覆盖

代码如下: 接口嗨{公共无效meth1();}抽象类 Hullo{公共抽象无效 meth1();}公共类 Hello 扩展了 Hullo 实现了 hi{公共无效 meth1(){}} 问题:代码编译和一切.我想知道 Hello 类中的 meth1() 覆盖了哪个 meth1()?接口中的ont还是抽象类中的ont,为什么? 解决方案 答案很简单:两者都...... 事实上,正确地 ..
发布时间:2021-11-26 17:07:29 Java开发

C++:如何知道基类子对象的大小?

. 这里我在讨论空基优化,并且 MSalters 发表了这个有趣的评论: 没有一个班级可以有sizeof(Class)==0,是否为空.但是我们正在专门讨论空基类子对象的大小.它不需要自己的 vtable,也不需要一个虚表指针.假设常见的vtable 指针在偏移处的布局0;这将导致零大小基类子对象共享其带有派生类的 vtable 指针.没问题:那些应该是相同的无论如何,这就是重点虚函数 ..

Java 中类型***** 的方法 ***** 未定义

我试图从另一个包中的抽象类 Sprite 调用一个方法,但我得到“方法 getSymbol() 未定义为 Sprite 类型" 这是代码. 这是另一个包精灵的代码 我猜问题是抽象类的方法无法实例化. 但我不知道如何解决它. 解决方案 这是问题所在: 公共类ArrayGrid实现 Grid 您声明类的方式,Sprite 是类型参数的名称.你已经把它变成了一个通用类 ..
发布时间:2021-11-26 17:07:07 Java开发

强制覆盖非抽象方法

我在抽象类中有一个方法 String foo() ,它已经做了一些预计算,但无法提供该方法应该返回的最终结果.所以我想要的是,从我的抽象类继承的每个非抽象类都必须以先调用 super() 然后计算结果的方式实现 foo.有没有办法在java中强制这样做? 解决方案 是的,通过重新设计以使用 模板方法模式并包括一个抽象方法: 公共抽象类 AbstractSuper {公共最终字符串 foo ..
发布时间:2021-11-26 17:06:59 Java开发

“无法创建抽象类或接口的实例"C# 错误信息

我将一个项目的基类更改为 abstract,现在我收到以下错误: 无法创建抽象类或接口的实例 我收到错误是因为不允许命名 abstract 类的新实例吗? newPlane = new Airplane_Abstract(name, position); 解决方案 您不能创建抽象类的实例.将其视为可能包含一些实现逻辑的接口.如果您调用一个没有定义的抽象实例方法,您希望发生什么? ..
发布时间:2021-11-26 17:06:52 C#/.NET