abstract 和 interface区别
1.接口就是提供一种统一的’协议’,而接口中的属性也属于’协议’中的成员.它们是公共的,静态的,最终的常量.接口中的属性,相当于全局常量.接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)开放,接口是对开闭原则的一种体现
抽象类是不’完全’的类,相当于是接口和具体类的一个中间层.即满足接口的抽象,也满足具体的实现.
2.实现接口的关键字是implements,抽象类的关键字是extends,一个类可以实现多个接口,但是一个类只能继承一个抽象类
3.接口中定义的成员变量默认为public,static和final.
public static final int i=15;
或则
int i=10;(可以省略掉一部分)
注意在声明的时候要给变量赋予初值
抽象类中的成员变量默认为default,也可以被private,protected和public
4.接口中的抽象方法只能是public,并且默认值为public abstract类型,抽象类中的抽象方法可以是public和protected
5.抽象类中可以有非空抽象的普通方法,而接口中所有的方法都是抽象的,不能有非抽象的普通方法。