поля ребёнка не видны родителю: я писал в новостях об этой
Александр Петросян (PAF) 27.06.2003 10:45
общая идея:
глядя на код должно быть понятно, что же он делает.
глядя на ваш код, это понятно.
но в общем виде: кто-то вполне мог не объявить в родительском getLeaf.
что бы выходило: вызывается какая-то функция, а потом читается волшебным образом появившаяся переменная.
это — нехорошо/непонятно/нелогично=неправильно.
посему было решено сузить область видимости полей класса до самого этого класса. плюс ребёнку видны поля родителя.
диагноз: явная инициализация переменных в родителе = средство повышения читабельности/понятности кода.