相同点:
1.都位于继承的顶端,用于其他类来继承与实现
2.不能实例化
3.都包含抽象方法,子类必须全部是所有抽象方法才可以创建对象
不同点:
1.抽象类可以有构造方法,成员变量,成员方法,抽象方法,接口中只有常量和抽象方法
2.抽象类只能单继承,接口可以多继承接口
3.一个类只能继承一个抽象类,但是可以实现多个接口
二者的选用:
- 优先选用接口,尽量少用抽象类;
- 需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;
相同点:
1.都位于继承的顶端,用于其他类来继承与实现
2.不能实例化
3.都包含抽象方法,子类必须全部是所有抽象方法才可以创建对象
不同点:
1.抽象类可以有构造方法,成员变量,成员方法,抽象方法,接口中只有常量和抽象方法
2.抽象类只能单继承,接口可以多继承接口
3.一个类只能继承一个抽象类,但是可以实现多个接口
二者的选用: