Aufruf der geschützten Methode aus einer Unterklasse, die von einer anderen Instanz von verschiedenen Paketen

Ich möchte auf eine geschützte Methode von einer anderen Instanz aus einer Unterklasse der Klasse bietet dieser geschützte Methode. Siehe dazu das folgende 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, dass computeSize() has protected access in Nano. Ich kann nicht sehen den Grund für dieses (ich dachte, ich tun dies bereits in einigen anderen code). Ich möchte Sie zu halten diese Methode geschützt werden, was kann ich tun?

javac version "1.7.0_09"

Bearbeiten

Ich wollte eine abgespeckte version, aber ich glaube nicht, über die Tatsache, dass die Klassen liegen in unterschiedlichen Paketen.

nanolay.Node
nanolay.NanoContainer
nanogui.SomeOtherNode
Können Sie auch zeigen, die Pakete, die Klassen sind?
Ahh, die Pakete.. nicht darüber nachdenken. Ich wollte eine abgespeckte version des Codes. Ich habe bearbeitet die Frage.
Können Sie fügen Sie bitte-Paket Qualifikation für den Frage-Titel, da scheint relevant zu sein?
Dieses okay? Ich ersetzte auch die instance-methods mit der packages tag.
Ja, das ist gut. BTW die akzeptierte Antwort braucht einige Korrekturen.

InformationsquelleAutor Niklas R | 2013-01-18

Schreibe einen Kommentar