一、请问接口的含义是什么?
答:①实实在在的接口类型;②系统对外提供的服务。
二、请问接口的特征是什么?
答:①接口中的成员变量默认都是public,static,final类型的,必须被显式初始化。
②接口中的方法默认都是public,abstract的。
③在jdk8以前的版本,接口只能包含抽象方法。从jdk8开始,允许在接口中定义默认方法和静态方法。接口的实现类既可以直接访问默认方法,也可以覆盖它,重新实现方法。
④接口没有构造方法,不能被实例化。
⑤一个接口不能实现另一个接口,但它可以继承多个其他接口。
⑥一个类只能继承一个直接的父类,但能实现多个接口。
三、请问抽象类与接口的相同点和区别是什么?
答:相同点:
①都不能被实例化;
②都能包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不必提供具体的实现。
③从jdk8版本开始,不仅抽象类能为部分方法提供默认的实现,接口也具有该特性。该特性可以避免在子类或者实现类中重复实现方法,这能提高代码的可重用性。
不同点:
①接口中的成员变量只能是public,static,final类型的,而在抽象类中可以定义各种类型的实例变量和静态变量。
②一个类只能继承一个直接的父类;但一个类可以实现多个接口。
四、请问与接口相关的设计模式是什么?
答:①定制服务模式;
②适配器模式;
③代理模式;