¿Por qué mi subclase no puede acceder a una variable protegida de su superclase cuando está en un paquete diferente?
Tengo una clase abstractarelation
en paquetedatabase.relation
y una subclase de ellaJoin
en paquetedatabase.operations
. relation
tiene un miembro protegido llamadomStructure
.
EnJoin
:
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);
}
}
}
En lineas
this.copyStructure(mRelLeft.mStructure);
y
for (final Header header : mRelRight.mStructure) {
Obtuve el siguiente error:
El campo Relation.mStructure no es visible
Si pongo ambas clases en el mismo paquete, esto funciona perfectamente. ¿Alguien puede explicar este problema?