Java抽象类Abstract Class和接口Interface的区别

抽象类Abstract Class和接口Interface区别

抽象类是为了隐藏内部实现,只向外部展示当前类具备的功能。


Abstract Class与Interface的区别
  • 默认实现: 接口不可用有实现,必须是绝对的抽象方法。抽象类可以有实例来实现默认行为。
  • 方法类型: 接口只能有抽象方法。抽象类可以有抽象方法和非抽象方法。从Java 8开始,抽象类可以增加默认实现和静态方法。
  • Final 变量: 接口内的变量默认会声明为 final 类型。抽象类可以持有非final变量。
  • 变量类型: 抽象类可以持有 final ,非 final ,静态和非静态变量。接口只能持有静态和 final 变量。
  • 实现: 抽象类可以提供接口的实现,接口不能提供抽象类的实现。
  • 继承和抽象区别: 接口通过 implements 关键字实现,抽象类通过 extends 关键字实现。
  • 多重实现: 接口可以继承一个或多个接口。抽象类只能继承一个Java类,可以实现多个Java接口。
  • 数据成员的可访问性: 接口的成员默认是 public 的。抽象类的成员可以是 privateprotected 等。

使用场景

何时用抽象类,何时用接口

接口可以对不用的类适用,实现类之间不需要有什么共同点。

知识点补充

多继承

Java是否支持多继承,在多继承时的特点与场景,优劣势

实现多接口

Java是否支持实现多接口,在多继承时的特点与场景,优劣势

Final变量

Static静态变量

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容