抽象类与接口的区别
核心区别
- 抽象类不能被实例化、包含一个抽象方法就是抽象类、但是抽象类可以包含具体方法、也可以不不包含抽象方法
- 接口提供绝对抽象,并且不能具有任何方法实现。JDK8中可以在包含方法实现的接口中创建默认和静态方法。
- 子类只能继承自一个抽象类,但可以实现多个接口。
- Java不支持多继承,通常接口更方便。同时使用接口和抽象类是设计系统的最佳方法
不同点 | 抽象类 | 接口 |
---|---|---|
构造函数 | 可以有 | 不能有 |
变量 | 任何类型 | 公共静态最终常量 |
方法 | 抽象方法(可以没有)、具体方法 | public abstract方法 |
关键字 | abstract , extends | interface,implements |
抽象类 extends
抽象方法:abstract void fun()
抽象类是用abstract
修饰的一个类。因为抽象类中有无具体实现的方法,所以不能实例化;抽象类不一定包含抽象方法;
abstract class fun{
abstract void fun();
}
注意点: