1、简述什么抽象类以及注意事项。
抽象类:包含有抽象方法的类就是抽象类,使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。
注意事项:
- 抽象类不能创建对象。
- 抽象类中,可以有构造方法。
- 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
- 2、简述JDK8中接口可以包括有哪些内容。
常量、抽象方法、静态方法、默认方法。
3、简述Java中抽象方法、静态方法和默认方法的注意事项。
1、抽象方法
接口中抽象方法的定义与抽象类中方法的定义及使用是一样的;
接口中,定义抽象方法时,abstract关键字可以省略,JVM会自动添加。
2、静态方法 - 静态方法使用 static 关键字修饰,不可省略,供接口直接调用;
- 静态方法不能被继承,也不能被重写;
- 静态方法只能通过接口名直接调用。
- 3、默认方法
- 默认方法使用 default 关键字修饰,不可省略,供子类调用;
- 默认方法可以被子类继承、同时也可以被子类实现,被子类实现时必须去除default关键字。
4、简述Java中接口多实现的注意事项。 - 子类进行多接口实现时,如果接口常量没有重名,可以按照之前的方式进行使用;如果接口常量出现重名,就必须通过接口名调用常量。
- 子类进行多接口实现时,接口中有多个抽象方法时,实现类必须重写所有抽象方法。如果抽象方法有重名的,只需要重写一次。
- 子类进行多接口实现时,接口中存在同名的静态方法并不会冲突,原因是只能通过各自接口名访问静态方法。
- 子类进行多接口实现时,接口中有多个默认方法时,实现类都可以选择继承使用。如果默认方法有重名的,必须重写一次。
- 当一个类既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。