Вы создаете то, что по сути является клоном родительского объекта. Это отличается от простого сохранения указателя на родительский объект.
Очевидно, что вы будете занимать больше места в памяти, дублируя родительский объект. Что еще более важно, вы не дублируете ссылки родителей. Поэтому, если вы попытаетесь пройти по дереву, перейти к родителю узла, а затем попытаться посетить его других потомков, вы нарисуете множество нулевых указателей.
this.parent
является ссылкой на указатель parent
текущего объекта.
Это на самом деле не означает, что this
является родителем. Фактически, this.parent
используется, чтобы отличить локальный указатель parent
от входящего параметра parent
.
class Person{
Person parent; // <---- this is the "this.parent" attribute, and is initially undefined
public void setParent(Person parent){ // <---- the "Person parent" on this line is an incoming parameter
this.parent = parent; //<---- "this.parent" refers to the attribute, and "parent" refers to the parameter
}
}