Por que minha subclasse não pode acessar uma variável protegida de sua superclasse, quando está em um pacote diferente?
Eu tenho uma aula abstratarelation
no pacotedatabase.relation
e uma subclasse dele,Join
na embalagemdatabase.operations
. relation
tem um membro protegido chamadomStructure
.
NoJoin
:
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);
}
}
}
Nas linhas
this.copyStructure(mRelLeft.mStructure);
e
for (final Header header : mRelRight.mStructure) {
Estou tendo o erro a seguir:
O campo Relation.mStructure não está visível
Se eu colocar as duas classes no mesmo pacote, isso funcionará perfeitamente. Alguém pode explicar esse problema?