相同点:
1.均可以被继承 ,2.子类继承后只有覆盖了所有抽象方法才能被实例化。3.均不能被实例化(不能创建对象)
不同点:
1.成员变量不同:抽象类内可以定义变量也可以定义常量;接口只能定义常量,固定修饰符public static final;
2.成员方法不同:抽象类中可以有抽象方法也可以没有,可以有非抽象方法也可以没有;接口中方法必须抽象
3.权限不同:接口是公共访问权限,成员也是公共访问权限;抽象类成员权限可以是非私有;
4.应用方式不同:接口可以被类单实现、多实现,接口可以被接口单继承、多继承,接口还可以在类继承类时实现接口,接口可以被多层继承;抽象类只能被单继承,可以被多层继承;
5.一般用法不同:抽象类一般被用来定义体系中的基本功能,为子类不断向上抽取的共性;接口一般用来做功能拓展,定义非体系内基本功能,为子类赋予个性功能。
|