gpt4 book ai didi

java - 父类(super class)引用子类对象?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:37 26 4
gpt4 key购买 nike

给我一​​个我们需要在 Java 中使用父类(super class)引用到子类对象的情况。请给我一个实时示例。

谢谢

最佳答案

我知道这已经过时了,但它出现在我最近从事的一个项目中(只是一个初级开发人员做了一些意想不到的事情 - 没有真正的原因!)而且我认为一些答案遗漏了点..

这与正常的多态无关;我认为这个问题与代码如下所示的情况有关:

class A {
B b; //odd reference here..
}
class B extends A {
}

父类(super class)定义中使用子类的地方。据我所知,没有正当理由自己编写这样的代码,但是该语言允许您这样做的原因是某些核心 Java 类需要它,例如Object .

例如,虽然它不存储对它的引用,但 Object 的代码创建并返回一个 String 对象,它是默认的 toString 方法,然而,StringObject 的子类。

有趣的是,尽管技术上允许,但让父类(super class)在其构造函数中创建子类实例是没有意义的。

例如

class A {
B b;
A(){
b = new B();
}
}
class B extends A {
}

由于 B 的构造函数正在调用 A 的构造函数,而 A 的构造函数正在调用 B 的构造函数等,因此它会创建一个无限循环,这将导致崩溃。

关于java - 父类(super class)引用子类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535550/

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