gpt4 book ai didi

java - 类扩展不止一个类Java?

转载 作者:IT老高 更新时间:2023-10-28 20:48:41 26 4
gpt4 key购买 nike

我知道一个类可以实现多个接口(interface),但是可以扩展多个类吗?例如,我希望我的类同时扩展 TransformGroup 和我创建的类。这在Java中可能吗? class X extends TransformGroup extends Yclass X extends TransformGroup, Y 两个语句都会收到错误。如果不可能,为什么? TransformGroup 扩展了 Group 但我猜它也扩展了 Node 因为它继承了 Node 的字段并且它可以通过 where Node 对象是必需的。此外,与 Java 中的所有类一样,它们扩展了 Object 类。那么为什么不能扩展一个以上的类呢?

TransformGroup inheritance

那么,如果可以的话,正确的方法是什么?如果没有,为什么以及如何解决这个问题?

最佳答案

在 Java 中不允许多重继承。作为设计决策,它被排除在语言之外,主要是为了避免循环依赖。

场景 1: 如您所知,以下内容在 Java 中是不可能的:

public class Dog extends Animal, Canine{

}

场景 2: 但是以下情况是可能的:

public class Canine extends Animal{

}

public class Dog extends Canine{

}

这两种方法的区别在于,第二种方法有一个明确定义的父类或 super 类,而第一种方法中的 super 类是不明确的。

考虑 AnimalCanine 是否都有方法 drink()。在第一种情况下,如果我们调用 Dog.drink() 会调用哪个父方法?在第二种情况下,我们知道调用 Dog.drink() 会调用 Canine 类的 drink 方法,只要 Dog 没有覆盖它。

关于java - 类扩展不止一个类Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132528/

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