Appel de méthode protégée à partir d'une sous-classe d'une autre instance de différents forfaits

Je veux appeler une méthode protégée d'une autre instance de l'intérieur d'une sous-classe de la classe cette méthode protégée. Voir l'exemple suivant:

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 me dit que computeSize() has protected access in Nano. Je ne vois pas la raison à cela (je pensais que je faisais déjà présent dans d'autres codes). J'aimerais garder cette méthode de protection, que puis-je faire?

javac version "1.7.0_09"

Modifier

J'ai voulu donner une version allégée, mais je ne pense pas que le fait que les classes se trouvent dans différents paquets.

nanolay.Node
nanolay.NanoContainer
nanogui.SomeOtherNode
Vous pouvez également afficher les paquets, les classes sont dans?
Ahh, les paquets.. ne pense pas à ce sujet. J'ai voulu donner une version allégée du code. J'ai édité la question.
Pouvez vous s'il vous plaît ajouter le package de qualification à la question titre, puisque cela semble être pertinente?
Ce correct? J'ai aussi remplacé la instance-methods avec le packages tag.
Oui, c'est bon. BTW la accepté de répondre à des besoins de certaines corrections.

OriginalL'auteur Niklas R | 2013-01-18