抽象类
包含
抽象方法:没有方法体的方法
抽象类:包含抽象方法的类
被abstract修饰的类就是抽象类
1、抽象类无法创建实体对象
2、抽象方法可以有构造方法
3、抽象类最终一定要有一个子类去继承这个抽象类,否则这个抽象类无意义!
4、抽象类一定要重写父类中的抽象方法,如果不重写,就一定要把自己变成抽象方法
5、抽象类子类要实现其所有祖先类的抽象方法,如果抽象类方法被重写了,则子类不用重写该方法。
抽象类与普通类的区别
1、抽象类有抽象方法,而普通类没有
2、抽象类不能创建对象,普通类可以创建
简述JDK8中接口可以包括有哪些内容。
常量:
Java接口中只能存在常量,不存在变量;
接口中定义常量时,public static final关键字默认可以省略,JVM会自动进行添加;
接口中定义常量时,必须进行初始化赋值,其初始化赋值后,值不能改变;
接口的实现类默认继承了接口中的常量,可以通过接口、子类、子类对象调用;
常量名要符合Java标识符规范,常量名通常用大写与下划线结合的形式。
抽象方法:
接口中抽象方法的定义与抽象类中方法的定义及使用是一样的;
接口中,定义抽象方法时,abstract关键字可以省略,JVM会自动添加。
静态方法:
静态方法使用 static 关键字修饰,不可省略,供接口直接调用;
静态方法不能被继承,也不能被重写;
静态方法只能通过接口名直接调用。
默认方法:
默认方法使用 default 关键字修饰,不可省略,供子类调用;
默认方法可以被子类继承、同时也可以被子类重写,被子类实现时必须去除default关键字。
默认方法只能被实现类对象调用。
default方法只允许在接口中定义
接口
定义:他的定义类方法相似
- 接口多实现的注意事项
- 实现多个接口时,子类要实现所有接口中的抽象方法
- 实现多个接口时,如果抽象方法出现重名方法出现重名,则需要重写一次方法
- 实现多个接口时,如果默认方法出现重名,则必须重写一次默认方法
- 实现多个接口且同时继承父类时,如果父类中的成员方法与接口中的默认方法重写,子类就会选择就近原则,选择执行父类的方法
- 如果接口常量出现重名,就必须通过接口名调用常量