编程知识 cdmana.com

JAVA中接口与抽象类的区别

1.定义

抽象类:使用abstract关键字修饰的类。
接口:是一种引用数据类型,是方法的集合,使用 interface 关键字修饰。

2.区别

语法层面上:

(1)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的(其实就是一个常量);
(2)接口中没有静态代码块,而抽象类可以有静态代码块
(3)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
JDK8可以有默认方法和静态方法,所以以前说的接口不能有方法的实现细节就不对了

设计层面上:

(1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。(飞机、鸟)
(2)抽象类的设计目的,是代码复用,是一种模板式设计。接口的设计目的是对类的行为的一种约束(一种有的约束),它是一种辐射式设计。
模板式设计,抽象类修改,也就是对公共部分做修改,子类不用变;而辐射式设计,接口修改,所有的实现接口的子类都得修改。

版权声明
本文为[icepopo]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4693103/blog/4713365

Tags java jdk
Scroll to Top