易百教程

119、抽象类和接口有什么区别?

抽象类和接口的区别如下:

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