抽象类和接口的区别如下:
抽象类 | 接口 |
---|---|
抽象类可以有一个方法体(非抽象方法) | 接口只有抽象方法 |
抽象类可以有实例变量 | 接口不能有实例变量 |
抽象类可以有构造函数 | 接口不能有构造函数 |
抽象类可以有静态方法 | 接口不能有静态方法 |
抽象类可以扩展 | 可以实现多个接口 |
抽象类可以提供接口的实现 | 接口不能提供抽象类的实现 |
使用 abstract 关键字用于声明一个抽象类 |
interface 关键字用于声明接口 |
一个抽象类可以扩展另一个 Java 类并实现多个 Java 接口 | 一个接口只能扩展另一个 Java 接口 |
可以使用关键字 extends 扩展抽象类 |
接口类可以使用关键字 implements 来实现 |
Java 抽象类可以具有 private , protected 等类成员。 |
默认情况下,Java 接口的成员是public 。 |