Вызовите защищенный метод из подкласса другого экземпляра других пакетов
Я хочу вызвать защищенный метод другого экземпляра из подкласса класса, обеспечивающего этот защищенный метод. Смотрите следующий пример:
public class Nano {
protected void computeSize() {
}
}
public class NanoContainer extends Nano {
protected ArrayList<Nano> children;
}
public class SomeOtherNode extends NanoContainer {
// {Nano} Overrides
protected void computeSize() {
for (Nano child: children) {
child.computeSize(); // << computeSize() has protected access in nanolay.Nano
}
}
}
javac
говорит мне, чтоcomputeSize() has protected access in Nano
, Я не вижу причины этого (я думал, что уже делал это в каком-то другом коде). Я хотел бы сохранить этот метод в безопасности, что я могу сделать?
javac version "1.7.0_09"
редактироватьЯ хотел предоставить урезанную версию, но я не думал о том, что классы лежат в разных пакетах.
nanolay.Node
nanolay.NanoContainer
nanogui.SomeOtherNode