Вы создаете то, что, по сути клон родительского объекта. Это отличается от простого сохранения указателя на родительский объект.
Очевидно, что вы будете принимать больший объем памяти, дублируя родительский объект. Что еще более важно, вы не дублировать ссылки на родителя. Так что если вы попытаетесь пройти через дерево, перейти к родителю узла, а затем попытаться посетить его другие ребенок, вы рисуете кучу нулевых указателей.
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
}
}