专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 问答 技术问答 interface和 abstract class的区别

interface和 abstract class的区别

洗头发的秃子已回答

Java 程序员,追求卓越。

interface是接口,abstract class是抽象类。我们再来从三个方面分析interface和 abstract class的区别:

1,语法层次

抽象类中可以拥有任意范围的成员数据,可以定义非抽象方法。而接口中只能拥有静态的不能修改的成员数据,同时所有的方法必须是抽象的。

所以说接口是抽象类的一种特例。

2,跨域不同

a,抽象类是对类的整体进行抽象,包括类的属性和行为。接口是对类的局部(行为)进行抽象。

b,抽象类是is-a,跨域的是具有相似特点的类。接口是like-a,可以跨域不同的类。

例如猫、狗可以抽象一个动物类的抽象类,具备叫的方法。鸟、飞机可以实现Fly接口,具备飞的行为。

3,设计层次

抽象类是自下而上的一种设计思想,而接口是自顶而下的一种设计思想。

抽象类中我们要知道子类才能抽象出父类。而接口不同,它只需要定义一个规则即可。

浏览1,023技术问答
2021-03-30 16:55:06

聚焦热点问题
时时免费答疑

累计0人询问

极速问
  >>其他人还看过
更多问答

Java实验班

0学费 专业学前测评

Java就业班

围绕企业 直达就业

Java夜校班

业余时间学 超高性价比

Java架构师班

升职加薪 快速变现

返回顶部