关于抽象类和接口的简单总结:
区别:
-
抽象类体现继承关系,一个类只能单继承。接口体现实现关系,一个类可以实现多个接口。
-
抽象类中可以定义抽象方法和非抽象方法,子类继承后可以直接使用非抽象方法。接口的方法都是抽象的,必须有子类去实现。接口的成员都有固定的修饰符。
-
抽象类有构造方法,用于子类对象初始化。而接口没有构造方法
特点:
-
抽象类不可以实例化。抽象类必须由子类覆盖所有的抽象方法才能实例化,否则这个子类也是抽象类。
-
抽象类abstract不能和那些关键字共存:
final:因为被final修饰的方法 不能被继承。
static: 因为类.方法()方法没有方法体,没有意义。
private:抽象方法是要被子类覆盖的,带有了private子类不知道这个方法。
3.接口中 声明变量都是 被static、final、public修饰的,接口中的方法都是public 、 abstract ,接口中的 数据成员 都是必须初始化,且全是常量,不是变量。
4.接口是特殊的抽象类,是抽象类的变体,接口可以使用extends来继承其他的接口