一 接口和抽象类的相似性
1 、都不能被实例化
2 、都可以包含抽象方法
二 接口和抽象类的区别
1 、接口:对动作的抽象,是设计的结果
抽象类:对根源的抽象,是重构的结果
2、接口:只能做方法的申明,用public修饰;
抽象类:可以做方法的申明,用abstract修饰,也可以做方法的实现
3、接口:只能定义静态常量;
抽象类:可以定义普通成员变量,也可以定义静态常量。
3、 接口:不能包含构造器;
抽象类:可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
4 、接口:不能包含初始化块;
抽象类:可以包含初始化块。
5 、接口:一个类可以直接实现多个接口
抽象类:一个类最多只能有一个直接父类,包括抽象类
6、如果一个类里有抽象方法,那么这个类只能是抽象类
7、抽象方法要被实现,所以不能是静态的,也不能是私有的