Rufen Sie eine geschützte Methode aus einer Unterklasse einer anderen Instanz verschiedener Pakete auf
Ich möchte eine geschützte Methode einer anderen Instanz aus einer Unterklasse der Klasse aufrufen, die diese geschützte Methode bereitstellt. Siehe folgendes Beispiel:
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
sagt mir dascomputeSize() has protected access in Nano
. Ich kann den Grund dafür nicht sehen (ich dachte, ich mache das bereits in einem anderen Code). Ich möchte diese Methode weiterhin schützen. Was kann ich tun?
javac version "1.7.0_09"
BearbeitenIch wollte eine abgespeckte Version zur Verfügung stellen, habe aber nicht daran gedacht, dass die Klassen in verschiedenen Paketen liegen.
nanolay.Node
nanolay.NanoContainer
nanogui.SomeOtherNode