仅具有抽象方法的抽象类

马蒂·华莱士(Marty Wallace)

给定一个仅具有抽象方法的抽象类,该类和接口之间的区别是什么?

我能看到的唯一区别将与在接口中使用多重继承的能力有关。

在这种情况下是否存在其他重要差异,这些差异将决定是执行此操作还是使用接口?

卡尔提克
  1. 抽象类是要从中继承的,当一个类从另一类继承时,意味着这两个类之间存在很强的关系。例如,如果我们有一个称为“犬科”的抽象基类,则任何派生类都应是属于犬科的动物(如狗或狼)。我们使用“应该”一词的原因是因为Java开发人员可以确保维持这种关系。

另一方面,在使用接口的情况下,接口本身与实现该接口的类之间的关系不一定很牢固。例如,如果我们有一个名为“ House”的类,那么该类也可以实现一个名为“ AirConditioning”的接口。空调并不是房屋的真正组成部分(尽管有人可能会指出这一点),而且这种关系不如“ TownHouse”阶层和“ House”阶层之间的关系那么牢固。源自“房屋”类别的“公寓”类别。

因为TownHouse是房屋的一种,所以这种关系非常牢固,可以通过继承而不是接口来更适当地定义。

因此,我们可以总结出第一点,说抽象类和从其派生的类之间存在牢固的关系时,抽象类会更合适。同样,这是因为抽象类与继承关系非常紧密,这意味着牢固的关系。但是,使用接口时,接口与实现该接口的类之间不必存在牢固的关系。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅具有抽象方法的抽象类

来自分类Dev

普通接口类和仅具有抽象方法的抽象类之间是否有区别?

来自分类Dev

没有抽象类的抽象方法

来自分类Dev

抽象类是否可以具有其他抽象类的返回类型的方法?

来自分类Dev

phpunit中具有受保护方法的抽象类

来自分类Dev

具有@XmlTransient的JAXB抽象类

来自分类Dev

具有所有方法抽象和接口的抽象类之间的区别?

来自分类Dev

具有返回不同类型子项的抽象类中的C#抽象方法

来自分类Dev

C#抽象类具有另一个抽象类对象

来自分类Dev

具有私有派生类的抽象类:一些实现方法

来自分类Dev

重载抽象类中的抽象方法

来自分类Dev

抽象类中的抽象方法

来自分类Dev

从抽象类测试子类的抽象方法

来自分类Dev

抽象类的抽象方法的部分实现

来自分类Dev

非抽象类中的抽象方法

来自分类Dev

Junit测试具有抽象类对象的类

来自分类Dev

具有所有抽象方法和接口的抽象类有什么区别(不是技术上的)

来自分类Dev

构造函数需要参数的抽象类与具有抽象get-only属性的抽象类之间的区别

来自分类Dev

Java类扩展了抽象类,但必须具有静态方法

来自分类Dev

Java类扩展了抽象类,但必须具有静态方法

来自分类Dev

有没有办法在抽象类中具有可选方法?

来自分类Dev

从抽象类继承方法

来自分类Dev

接口,抽象类和抽象类的方法

来自分类Dev

具有抽象类的构造方法-不接受特定的构造方法

来自分类Dev

具有隐藏构造函数的抽象类的实例

来自分类Dev

具有默认值的抽象类

来自分类Dev

具有自定义注释的抽象类

来自分类Dev

具有抽象类的静态块的行为

来自分类Dev

具有抽象类实现接口的AutoConfiguredMoqCustomization

Related 相关文章

热门标签

归档