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"
Bearbeiten

Ich 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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage