gpt4 book ai didi

java - 映射 Java 的接口(interface)方法

转载 作者:行者123 更新时间:2023-12-01 08:15:12 25 4
gpt4 key购买 nike

我在接口(interface)方面遇到了一些有趣的问题,请帮助我理解这个概念。

我有三个接口(interface)Itest,Itest3,Itest4。 Itest 接口(interface)扩展了 Itest3 和 Itest4 接口(interface)。这两个接口(interface)都有共同的一个方法 public void one(); 现在一个类 Test 实现了 Itest 接口(interface)并重写了方法 one()

现在它继承了哪个接口(interface)的方法?如果我想继承特定接口(interface)的公共(public)方法怎么办?和它对多态性有什么影响?如果另一个类只继承 Itest3 怎么办?我认为这会在运行时中断。

请帮我理解这样做的好处是什么?

代码在这里...

public interface ITest extends Itest4,Itest3 {
public static interface ITest2{

}
}

public interface Itest3 {
public void one();
}

public interface Itest4 {
public void one();
}

public class Test implements ITest {

@Override
public void one() {
//Which interface method it overrides?
}

public static void main(String... arg) {
new Test();
}

}

最佳答案

答案是:没关系。

接口(interface)只是声明,而不是代码。两个接口(interface)都声明了一个方法public void one()。当您有一个实现此方法的实现类时,它会同时为两个接口(interface)实现它。 class Test 中的此实现不会覆盖任何内容。这是第一次实现。它可以覆盖的接口(interface)中没有实现 - 只有两个相同的声明。

当另一个类实现 ITest3 时,它将需要自己的 public void one() 实现。就像任何其他实现 ITest4 或 ITest 的类一样。唯一不需要自己的实现的情况是当您有一个扩展类 Test 的类时,因为它可以从 Test 继承实现。

关于java - 映射 Java 的接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953148/

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