gpt4 book ai didi

java - 了解多重继承和接口(interface)

转载 作者:行者123 更新时间:2023-12-02 00:21:24 24 4
gpt4 key购买 nike

我在一定程度上了解多重继承和接口(interface)。是否可以使用多重继承来实现我的要求?

我有类 A、B、C、D,它们分别实现接口(interface) InterA、InterB、InterC、InterD。我想要一个 ABCD 类,它应该具有 A、B、C、D 的所有方法。然后我希望 InterA、InterB、InterC、InterD 中声明的方法在 ABCD 类中可用。

我已经在类 A、B、C、D 中定义了 InterA、InterB、InterC、InterD 中的方法的实现,我不想在类 ABCD 中再次定义它们。我怎样才能在Java中做到这一点?

最佳答案

接口(interface)的目的是确保实现该接口(interface)的类将实现该接口(interface)中声明的所有方法。

例如:

public interface Flyer {

public void fly();
}

上述接口(interface)确保任何实现 Flyer 接口(interface)的 Java 类都将实现 Fly 方法,无论飞行如何实现。

例如:

public class Bird implements Flyer {

public void fly() {
System.out.println("Bird is flapping");
}
}

另一个例子:

public class Eagle implements Flyer {

public void fly() {
System.out.println("Eagle is soaring");
}
}

有了接口(interface),我确信无论实现不同,fly() 方法都会存在。

因此,如果您想要一个类 ABCD 具有 4 个不同接口(interface)的行为,如接口(interface) A、B、C 和 D 中所指定,那么您可以实现:

public class ABCD implements A,B,C,D {

// methods here
}

通常,我们使用接口(interface)来继承行为,使用父/子类来继承模型。

那么我们如何使用Flyer界面呢?

示例代码:

public class FlyerTest {

public static void main (String [] args) {
Flyer flyer = new Eagle();
flyer.fly(); // Prints out "Eagle is soaring"

flyer = new Bird();
flyer.fly(); // Prints out "Bird is flapping"
}

}

如你所见,只要我有一个Flyer,我就确信“飞”的方法一定会有实现。这让我不再需要怀疑该方法是否确实存在。

这就是我们使用接口(interface)来继承行为的原因。

希望您对多重继承有更好的理解。

为了回答您的核心问题,面向对象编程通常有助于促进代码重用。

关于java - 了解多重继承和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10909717/

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