首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只使用抽象方法的抽象类

只使用抽象方法的抽象类
EN

Stack Overflow用户
提问于 2014-06-11 22:56:47
回答 2查看 104关注 0票数 3

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

我所能看到的唯一不同之处在于与接口一起使用多重继承的能力。

在这种情况下,是否还有其他重要的区别来决定是否要这样做或使用接口呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-13 18:33:31

  1. 抽象类意味着要从另一个类继承,当一个类继承另一个类时,它意味着两个类之间存在着很强的关系。例如,如果我们有一个名为" Canine“的抽象基类,那么任何派生类都应该是属于狗家族的动物(比如狗或狼)。我们使用“应该”一词的原因是,需要由Java开发人员来确保保持这种关系。

另一方面,对于接口,接口本身与实现接口的类之间的关系不一定很强。例如,如果我们有一个名为"House“的类,那么该类还可以实现一个名为"AirConditioning”的接口。拥有空调并不是房子的重要组成部分(尽管有些人可能会认为这一点),而且这种关系并不像“TownHouse”类和" House“类之间的关系那样牢固,或者”公寓“类之间的关系源自”House“类。

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

所以,我们可以总结第一点,当抽象类和它派生的类之间有很强的关系时,抽象类将更合适。同样,这是因为抽象类与继承非常紧密地联系在一起,这意味着强大的关系。但是,对于接口,接口和实现接口的类之间不需要有很强的关系。

票数 0
EN

Stack Overflow用户

发布于 2014-06-11 23:01:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24173934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档