想不出更好的标题。
一个经典的学习示例: class Human
,其中属性是姓名、年龄、母亲和父亲。父母双方也Human
一样。
public class Human {
String name;
int age;
Human mother;
}
我想创建 3 个构造函数:
Human()
;Human(String name, int age)
;Human(String name, int age, Human mother)
.
我想我确实了解链接的工作原理,这就是我所做的:
Human() {
this("Jack", 22);
}
Human(int age, String name) {
this(age, name, new Human()); // new Human() will cause SOF Error.
}
Human(int age, String name, Human mother) {
this.age = age;
this.name = name;
this.mother = mother;
}
如上所述,我收到了,我想StackOverflowError
我再次知道它为什么会发生。虽然公平地说,我想我会得到像人类杰克这样的东西,他的母亲也是人类杰克。
不过,我想知道该怎么做。我的猜测是,new Human()
我应该用所有参数调用构造函数,但我不确定它是否正确以及唯一可用的选项。
将不胜感激这里的任何指导。