给我一个我们需要在 Java 中使用父类(super class)引用到子类对象的情况。请给我一个实时示例。
谢谢
最佳答案
我知道这已经过时了,但它出现在我最近从事的一个项目中(只是一个初级开发人员做了一些意想不到的事情 - 没有真正的原因!)而且我认为一些答案遗漏了点..
这与正常的多态无关;我认为这个问题与代码如下所示的情况有关:
class A {
B b; //odd reference here..
}
class B extends A {
}
父类(super class)定义中使用子类的地方。据我所知,没有正当理由自己编写这样的代码,但是该语言允许您这样做的原因是某些核心 Java 类需要它,例如Object
.
例如,虽然它不存储对它的引用,但 Object
的代码创建并返回一个 String
对象,它是默认的 toString
方法,然而,String
是 Object
的子类。
有趣的是,尽管技术上允许,但让父类(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/