【发布时间】:2016-05-08 15:42:14
【问题描述】:
我第一次在 java 中遇到继承,我遇到了构造函数的问题。
考虑 A 类
class A{
...(Constructor) {
...
ObjectCreatedBySubClass= new B();
}
...(etc)
protected static B ObjectCreatedBySubClass;
}
连同它的子类
class B extends A{
B(){
..(No matter what code I put here, it does not work.)
}
...(Instance variables)
}
无论我改变什么,每次我得到
Exception in thread "main" java.lang.StackOverflowError
at A.<init>
at B.<init>
(repeat about 100 times)
我的教授解释说,我不应该像这里那样“扩展”“拥有”关系。我将使用组合而不是继承来解决我的问题,但我的问题是
我不明白为什么会出现此问题。由于(我假设)某种无限循环,它内存不足,但我不知道为什么。 在这种情况下,我该如何正确使用继承?
任何帮助将不胜感激。
【问题讨论】:
标签: java inheritance constructor