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 Paket database.relation - und einer Unterklasse, Join im Paket database.operations. relation hat eine geschützte member-namens mStructure.

In Join:

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);
        }
    }
}

Linien

this.copyStructure(mRelLeft.mStructure);

und

for (final Header header : mRelRight.mStructure) {

Bekomme ich die folgende Fehlermeldung:

Bereich Beziehung.mStructure ist nicht sichtbar

Wenn ich beide Klassen im gleichen Paket, das funktioniert perfekt. Kann mir jemand erklären, dieses Problem?

InformationsquelleAutor der Frage Amir Rachum | 2010-06-18

Schreibe einen Kommentar