【发布时间】:2015-07-16 20:13:43
【问题描述】:
我有一个疑问,如果所有继承的接口成员都没有实现,那么派生的结果是一个抽象类吗?
如果可以,鉴于底层派生类是抽象类,我可以创建该接口的实例吗?
【问题讨论】:
-
为什么要实例化一个抽象类?
标签: inheritance interface abstract
我有一个疑问,如果所有继承的接口成员都没有实现,那么派生的结果是一个抽象类吗?
如果可以,鉴于底层派生类是抽象类,我可以创建该接口的实例吗?
【问题讨论】:
标签: inheritance interface abstract
问:扩展接口但不实现它们,这是一个抽象类吗?
答:如果你想编译一个没有实现接口的类,那么这个类必须是一个抽象类,否则你会得到一个编译器错误。
问:我可以创建该接口的实例吗...
答:停在那里——你不能创建接口的实例。您也不能创建抽象类的实例。该类必须是 'concrete' 才能实例化它。
请查看这些其他 SO 问题:
【讨论】:
对于具体类,必须定义接口的所有成员,使用抽象类,您可以将成员标记为抽象,并让派生自它的具体类定义方法。
只能从具体类创建实例,但是您可以使用接口或抽象类引用来访问这些实例对象。
Interface a = new InterfaceImplementation();
a.SomeInterfaceMethod();
这是跨语言的典型情况,但会因所讨论的语言而异,即有些语言是单一范式,例如纯函数式。
【讨论】: