Java抽象类Abstract Class和接口Interfac
2022-07-19 本文已影响0人
sea_biscute
抽象类Abstract Class和接口Interface区别
抽象类是为了隐藏内部实现,只向外部展示当前类具备的功能。

- 默认实现: 接口不可用有实现,必须是绝对的抽象方法。抽象类可以有实例来实现默认行为。
- 方法类型: 接口只能有抽象方法。抽象类可以有抽象方法和非抽象方法。从Java 8开始,抽象类可以增加默认实现和静态方法。
-
Final 变量: 接口内的变量默认会声明为
final
类型。抽象类可以持有非final变量。 -
变量类型: 抽象类可以持有
final
,非final
,静态和非静态变量。接口只能持有静态和final
变量。 - 实现: 抽象类可以提供接口的实现,接口不能提供抽象类的实现。
-
继承和抽象区别: 接口通过
implements
关键字实现,抽象类通过extends
关键字实现。 - 多重实现: 接口可以继承一个或多个接口。抽象类只能继承一个Java类,可以实现多个Java接口。
-
数据成员的可访问性: 接口的成员默认是
public
的。抽象类的成员可以是private
、protected
等。
使用场景
何时用抽象类,何时用接口
接口可以对不用的类适用,实现类之间不需要有什么共同点。
知识点补充
多继承
Java是否支持多继承,在多继承时的特点与场景,优劣势
实现多接口
Java是否支持实现多接口,在多继承时的特点与场景,优劣势