我想从提供受保护方法的类的子类中调用另一个实例的受保护方法。请参见以下示例:
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
告诉我Nano中的computeSize()访问受保护
。我不知道原因(我以为我已经在其他代码中这样做了)。我希望仍然保持该方法受保护,我该怎么办?
javac version "1.7.0_09"
编辑
我想提供一个简化版本,但我没有考虑到不同包中的类的问题。
nanolay.Node
nanolay.NanoContainer
nanogui.SomeOtherNode