Почему мой подкласс не может получить доступ к защищенной переменной своего суперкласса, когда он находится в другом пакете?
У меня есть абстрактный класс,relation
в упаковкеdatabase.relation
и подкласс этого,Join
в упаковкеdatabase.operations
. relation
имеет защищенного члена по имениmStructure
.
В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);
}
}
}
На линии
this.copyStructure(mRelLeft.mStructure);
а также
for (final Header header : mRelRight.mStructure) {
Я получаю следующую ошибку:
Поле Relation.mStructure не видно
Если я положу оба класса в один пакет, это прекрасно работает. Кто-нибудь может объяснить эту проблему?