一、共同点
- 都可以写抽象方法,并且规定子类(或者继承接口的类)必须重写抽象方法。(除非这个类也定义成abstract)
正因为如此,不能有:
->抽象的构造方法:构造方法是类实例化的过程,但是抽象方法不能被实例化,只能被继承并重写。
->抽象的静态方法:静态方法可以被类及其对象调用,不能被继承,但是抽象方法必须被继承。 - 都不能被实例化,不能创建实例化对象
二、区别
抽象类 | 接口 |
变量:可以包含非final的 | 变量必须是final的 |
抽象方法:可以是多种类型的 | 方法必须是public的 |
单继承 | 可以有多接口 |
可以包含抽象方法和非抽象方法 | 只能包含抽象方法 |
可以有构造方法(为子类准备) | 没有构造方法 |