接口和抽象类的区别

Posted wenxudong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口和抽象类的区别相关的知识,希望对你有一定的参考价值。

相同点:

1. 都位于继承的顶端,用于被其他实现或继承。

2. 都不能被实例化。

3. 都可以定义抽象方法,其子类/实现类都必须覆写这些抽象方法。

不同:

1. 接口没有构造方法,抽象类有构造方法。

2. 抽象类可包含普通方法和抽象方法,接口只能包含抽象方法(java8之前)。

3. 一个类只能继承一个直接父类(可能是抽象类),接口是多继承的并且只支持一个类实现多个接口。

4. 变量:接口里默认是pubic static final,抽象类是默认包权限。

5. 方法:接口里默认是public abstract,抽象类默认是默认包访问权限。

6. 内部类:接口里默认是public static,抽象类默认是默认包访问权限。

 

如果接口和实现类都可以完成的功能,尽量使用接口,面向接口编程。

以上是关于接口和抽象类的区别的主要内容,如果未能解决你的问题,请参考以下文章

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别是什么?

接口和抽象类的区别是什么?

接口和抽象类的区别