接口与抽象类的异同点
相同点
- 都不能直接被实例化,必须要通过子类或实现类进行实例化。
- 子类或实现类必须重写全部父类的抽象方法,否则该类要被声明为抽象类。
不同点:
1.关键字:关键字不同,abstract class,interface
2.成员变量:抽象类中的成员变量可以是常量,也可以是变量。接口中的只能是常量。
3.成员方法:抽象类中的成员方法可以是具体的也可以是抽象的。接口中只能是抽象的。
4.构造方法:抽象类中有构造方法但不能用于创建对象,只能用于子类创建对象时调用,完成父类的初始化。
5.使用时的关键字:抽象类子类通过extends关键字。接口通过implements关键字。
6.继承方式:子类继承抽象类只能单继承,接口可以多继承。
7.接口之间可以多继承,类只能单继承。