本节书摘来华章计算机《数据结构与抽象:Java语言描述(原书第4版)》一书中的第1章 ,第1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 罗得岛大学 新英格兰理工学院 辛运帏 饶一梅 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
P.3.4 派生一个接口
一旦有了一个接口,就可以使用继承机制从它派生另一个接口。事实上,可以从多个接口派生一个接口,虽然不能从多个类派生一个类。
当一个接口继承另一个接口时,它具有所继承接口中的所有方法。所以你能创建一个接口,它含有已有接口中的方法再加上一些新方法。例如,考虑宠物的类及下列接口:
我们可以继承Nameable来创建接口Callable:
实现Callable的类必须实现方法come、setName和getName。
还可以从多个接口派生一个新接口,如果愿意,甚至还可以添加更多的方法。例如,假定除了前两个接口外,还定义了下列接口:
则实现Trainable的类必须实现方法setName、getName、come、hear和respond,以及方法sit、speak和lieDown。
注:Java接口可以从多个接口派生,虽然不能从多个类派生一个类。
自测题8 假定含有方法setName的类Pet还没有实现接口Nameable。你能将Pet的实例当作有下列方法头的方法的参数吗?