抽象类只有抽象方法

时间:2014-06-11 22:56:47

标签: java oop

给定一个只有抽象方法的抽象类,它和接口之间会有什么区别?

我能看到的唯一区别是与接口使用多重继承的能力。

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

2 个答案:

答案 0 :(得分:0)

将非公共方法声明为抽象的能力......将抽象类设置为从其他父项派生的能力以及通过它向父子提供父方法的能力......确定您的Ctor将获得什么的能力以及通过强制派生类“​​知道”某些数据

答案 1 :(得分:0)

  1. 抽象类是从中继承的,当一个类从另一个类继承时,它意味着两个类之间存在强关系。例如,如果我们有一个名为“Canine”的抽象基类,任何派生类都应该是属于Canine家族的动物(如Dog或Wolf)。我们使用“应该”这个词的原因是因为Java开发人员需要确保维持关系。
  2. 另一方面,通过接口,接口本身与实现接口的类之间的关系不一定很强。例如,如果我们有一个名为“House”的类,那么该类也可以实现一个名为“AirConditioning”的接口。空调并不是房子的重要组成部分(虽然有些人可能会说这一点),而且这种关系并不像“TownHouse”课程与“House”课程之间的关系或者之间的关系那样强烈。 “公寓”课程来自“众议院”课程。

    因为TownHouse是一种House,这种关系非常强大,并且通过继承而不是接口更合适地定义。

    因此,我们可以总结第一点,即当抽象类与从中派生的类之间存在强关系时,抽象类会更合适。同样,这是因为抽象类与继承密切相关,这意味着强大的关系。但是,对于接口,接口和实现接口的类之间不需要有很强的关系。