java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别
一、抽象 abstract
作用:不能产生对象,充当父类,强制子类正确实现重写方法
和类相比仅有的改变是不能产生对象,其他的都有,包括构造、属性等等
任何一个类只要有一个抽象的方法就成了抽象类
抽象方法 public abstract A();
①方法是抽象的,这个类也是抽象的;
②子类必须重写抽象方法,除非子类也是抽象类
抽象类可以没有抽象方法,但一般不这么设计
二、接口 interface
接口也是Java的一种引用数据类型(Java引用数据类型包括:类,数组,接口)
作用:让没有继承关系的类共享行为
命名一般在后边加上able,表示拥有什么什么的能力
①属性:只能是公共、静态、常量属性
没有写也是默认的这个
int D = 10;//public static final int D = 10;
②方法:只能是公共抽象方法(JDK1.8以前,1.1-1.7)
默认:public abstract
类实现接口:implements 接口,有没有实现接口的所有方法,只能是抽象类
接口的引用可以指向任何一个实现类对象,只能看到定义在接口中的行为或属性
public void service(Serviceable ser){
ser.changOil();
ser.turnUpEnginee();
}
接口可以继承接口,而且可以多继承,因为接口不是类,也是一种引用该数据类型
public interface C extends InterB ,InterA{
}
三、设计类和设计接口的原则
与生俱来的行为写在父类方法里 与生俱来(父类)
附属方法写在接口里 可选(接口)
设计接口原则:最小化接口原则,可以多种组合
使用接口原则:使用接口实现多继承,使用接口为外部类添加功能
四、接口和抽象类的区别 ①语法 ②设计
①语法
接口
定义:关键字:interface。内容:①公共静态常量属性②公共抽象方法
使用:类实现接口 implement 多实现。接口继承接口,多继承
抽象类
定义:关键字:abstract class。内容:任意属性
使用:类继承 extends抽象类,单继承
②设计
附属行为写在接口里边,尽量设计小接口
与生俱来行为写在抽象类里边