抽象类
抽象类可以作为父类去继承,但是抽象类本身并不能被实例化,抽象类具备class的全部功能,包括成员变量和方法,子类可以通过继承的方式去调用抽象类的相应属性及方法,比较类似我们Oc当中的Base Class用法,但是由于Java只支持单继承所以一个Class只能继承一个抽象类,所以使用场景比较单一.
接口
接口不是一个class,所以不能使用全部class特性,interface
可以声明方法,定义属性不过属性是以final
修饰的,不可以修改其值.实现接口的class
可以重写接口中的方法,并且可以调用接口声明的属性.利用接口我们可以实现多继承的效果,一个class
可以实现多个接口.
抽象类与接口的区别
抽象类还包含除不能直接实例化外的全部特性,而接口只可以声明属性和方法;
抽象类只可以单继承,而接口可以多继承;
抽象类在存在方法体,也就是在声明方法的时候可以附带方法实现,而接口不可以,接口只能声明方法不带有实现;
4.抽象类的属性子类可以任意读写,而接口中的属性是以final
修饰的,所以接口声明的属性实现接口的class
是不能够随意修改属性值得.