gpt4 book ai didi

java - Java中接口(interface)的重要性

转载 作者:IT老高 更新时间:2023-10-28 20:42:05 24 4
gpt4 key购买 nike

假设我们有两个类,TigerAeroplane。这两种类型的共同点是速度。我知道创建一个父类(super class) ClassWithSpeed 然后从中派生子类 AeroplaneTiger 是不合逻辑的。相反,最好创建一个包含方法 speed() 的接口(interface),然后在 AeroplaneTiger 中实现它。我明白了。但是,我们可以在没有接口(interface)的情况下做同样的事情。我们可以在 Aeroplane 中定义方法 speed() 和在 Tiger 中定义方法 speed()。唯一(可能非常大)的缺陷是我们无法通过接口(interface)引用“访问”TigerAeroplane 的对象。

我是 Java 和 OOP 的初学者,如果有人向我解释接口(interface)的作用,我将不胜感激。干杯!

最佳答案

是:

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 函数。

接口(interface)与否,每个类都必须实现或继承 speed() 方法。接口(interface)使您可以更轻松地使用这些不同的类,因为它们都 promise 以某种方式运行。您将调用 speed(),它们将返回一个 int,因此您不必为每个可能的类编写单独的方法。

当您发现由于相对论物理学的突破而需要以不同方式处理速度时,您只需更新调用 speed() 的方法。当您的曾孙女为 HyperIntelligentMonkeyFish 编写一个类时,她不必反汇编您的古老二进制文件并进行更改,以便您的代码可以监视和控制她的变种人军队。她只需要声明 HyperIntelligentMonkeyFish 实现了 Mover

关于java - Java中接口(interface)的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com