1、相同
1、不能实例化
2、如果继承某个抽象类或者实现某个接口,需要实现所有的抽象方法,否则该类仍是抽象来。
2、成员区别
抽象类:(1)成员变量:变量和常量都可以
(2)成员方法:抽象方法和非抽象方法都可以
(3)构造方法:可以有
接 口:(1)成员变量:只可以是常量
(2)成员方法:只可以是抽象方法
(3)构造方法:不允许有,禁止有!!!
2、关系区别
类与类:单继承、多层继承
类与接口:既可以单实现,也可以多实现。
3、访问权限修饰符
抽象类:成员可以是public、protected、default
接口 :成员只能是public
4、设计区别
抽象类: is a
接 口:like a
接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约;
而抽象类在代码实现方面发挥作用,可以实现代码的重用