它:
public int howFast(Airplane airplane) {
return airplane.speed();
}
public int howFast(Tiger tiger) {
return tiger.speed();
}
public int howFast(Rocket rocket) {
return rocket.speed();
}
public int howFast(ThingThatHasntBeenInventedYet thingx) {
// wait... what? HOW IS THIS POSSIBLE?!
return thingx.speed();
}
...
与
public int howFast(Mover mover) {
return mover.speed();
}
现在,想象一下将来必须返回并更改所有这些功能。howFast
接口或否,每个类都必须实现或继承该方法。接口允许您更轻松地使用这些不同的类,因为它们都承诺以某种方式运行。您将调用 ,并且它们将返回 一个 ,因此您不必为每个可能的类编写单独的方法。speed()
speed()
int
当你发现由于相对论物理学的突破而需要以不同的方式处理速度时,你只需要更新调用.当你的曾孙女为 写一门课时,她不必反汇编你的古代二进制文件并进行更改,这样你的代码就可以监视和控制她的变异军队。她只需要声明.speed()
HyperIntelligentMonkeyFish
HyperIntelligentMonkeyFish implements Mover