抽象类和接口的区别
1. 定义
- 抽象类:用于描述一类事物的共性
- 接口:用于描述行为。
2. 方法和变量
抽象类:
- 可以有普通方法和抽象方法。
- 可以有普通成员变量和静态常量。
接口:
- JDK 8之前只支持抽象方法,JDK 8后支持默认方法和静态方法。
- 变量只能是public static final。
3. 继承关系
- 抽象类:一个类只能继承一个抽象类(单继承)。用extends关键字。
- 接口:一个类可以实现多个接口(多实现)。用implements关键字。
4. 构造方法
- 抽象类:可以有构造方法,用于被子类调用。
- 接口:不能有构造方法。
5. 默认访问修饰符
- 抽象类:普通类的规则,成员可以是private、protected或public。
- 接口:所有方法默认是public abstract,变量默认是public static final。
还在纠结抽象类和接口?看这篇就够了!-阿里云开发者社区