简介
本文介绍Java中接口与抽象类的区别。
区别
项 | 抽象类 | 接口 |
继承与实现 | 子类使用extends关键字来继承抽象类。 只能继承1个抽象类。 | 子类使用关键字implements来实现接口。 可以实现多个接口。 |
构造方法 | 可以有构造方法。 | 不能有构造方法。 |
普通方法 | 允许有普通方法。 | 所有方法都必须是抽象的。 (JDK8后允许使用default、static定义非抽象方法) |
成员变量 | 允许有成员变量。 | 只允许有常量(public static final类型)。 |
访问修饰符 | 抽象方法可以是:public、protected | 抽象方法只能是public。 默认为public abstract |
main方法 | 可以有main方法并且我们可以运行它。 | 没有main方法,因此我们不能运行它。 |
设计理念 | 被继承体现的是:”is a”的关系。 抽象类中定义的是该继承体系的共性功能。 | 被实现体现的是:”like a”的关系。 接口中定义的是该继承体系的扩展功能。 |
请先
!