【问题标题】:Inherited Interface if Unimplemented = Abstract class?如果未实现 = 抽象类,继承接口?
【发布时间】:2015-07-16 20:13:43
【问题描述】:

我有一个疑问,如果所有继承的接口成员都没有实现,那么派生的结果是一个抽象类吗?

如果可以,鉴于底层派生类是抽象类,我可以创建该接口的实例吗?

【问题讨论】:

  • 为什么要实例化一个抽象类?

标签: inheritance interface abstract


【解决方案1】:

问:扩展接口但不实现它们,这是一个抽象类吗?

答:如果你想编译一个没有实现接口的类,那么这个类必须是一个抽象类,否则你会得到一个编译器错误。

问:我可以创建该接口的实例吗...

答:停在那里——你不能创建接口的实例。您也不能创建抽象类的实例。该类必须是 'concrete' 才能实例化它。

请查看这些其他 SO 问题:

【讨论】:

    【解决方案2】:

    对于具体类,必须定义接口的所有成员,使用抽象类,您可以将成员标记为抽象,并让派生自它的具体类定义方法。

    只能从具体类创建实例,但是您可以使用接口或抽象类引用来访问这些实例对象。

    Interface a = new InterfaceImplementation();
    a.SomeInterfaceMethod();
    

    这是跨语言的典型情况,但会因所讨论的语言而异,即有些语言是单一范式,例如纯函数式。

    【讨论】:

      猜你喜欢
      • 2011-11-03
      • 2018-04-05
      • 1970-01-01
      • 2012-04-11
      • 2011-09-16
      • 1970-01-01
      • 2012-07-15
      • 2013-01-09
      • 1970-01-01
      相关资源
      最近更新 更多