抽象类和接口的区别
抽象类
- 抽象类中可以定义构造器,接口不能
- 可以有抽象方法和具体方法
- 抽象类中得成员可以是private、friend、protected、public
- 抽象类可以定义成员变量
- 有抽象方法的类必须被声明为抽象类,抽象类未必要有抽象方法。
- 抽象类中可以包含静态方法
接口
- 接口中不能定义构造器
- 方法全部都是抽象方法
- 接口中的成员全部都是public的
- 接口中定义的成员变量实际上都是常量
- 接口中不能有静态方法
- 一个类可以实现多个接口
继承、实现
- 一个类只能继承一个抽象类,可以实现多个接口。
- 当一个类继承一个抽象类后必须实现抽象类所有的抽象方法,除非它是一个抽象类,抽象类继承抽象类后可以实现父类某个方法,也可以不实现。
- 当一个类实现一个接口时,也必须要实现接口中所有的抽象方法。
- 被static修饰的类不能继承和实现接口