Warum kann meine Unterklasse nicht auf eine geschützte Variable ihrer Oberklasse zugreifen, wenn sie sich in einem anderen Paket befindet?

Ich habe eine abstrakte Klasse,relation im Paketdatabase.relation und eine Unterklasse davon,Join, im Paketdatabase.operations. relation hat ein geschütztes Mitglied namensmStructure.

ImJoin:

public Join(final Relation relLeft, final Relation relRight) {
        super();
        mRelLeft = relLeft;
        mRelRight = relRight;
        mStructure = new LinkedList<Header>();
        this.copyStructure(mRelLeft.mStructure);

        for (final Header header :mRelRight.mStructure) {
        if (!mStructure.contains(header)) {
            mStructure.add(header);
        }
    }
}

On lines

this.copyStructure(mRelLeft.mStructure);

un

for (final Header header : mRelRight.mStructure) {

Ich erhalte den folgenden Fehler:

Das Feld Relation.mStructure ist nicht sichtbar

Wenn ich beide Klassen in dasselbe Paket packe, funktioniert das perfekt. Kann jemand dieses Problem erklären?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage