or que não posso chamar um método protegido de uma classe herdada em outro pacote em Jav
Diga que há a seguinte classe base:
package bg.svetlin.ui.controls;
public abstract class Control {
protected int getHeight() {
//..
}
//...
}
Além disso, no mesmo pacote, há uma classe que herda:
package bg.svetlin.ui.controls;
public abstract class LayoutControl extends Control {
public abstract void addControl(Control control);
//...
}
Então, há uma terceira classe em outro pacote:
package bg.svetlin.ui.controls.screen;
public abstract class Screen extends LayoutControl {
//...
}
E, finalmente, há a classe de implementação, novamente em um pacote diferente:
package bg.svetlin.ui.controls.screen.list;
public class List extends Screen {
private final Vector controls = new Vector();
public void addControl(Control control) {
height += control.getHeight();
controls.addElement(control);
}
}
Apesar deList
herda deControl
, e agetHeight()
éprotected
, há o seguinte erro:
getHeight () protegeu o acesso em bg.svetlin.ui.controls.Control
Verifiquei se minhas importações estão corretas. Estou usando o NetBeans.
Alguma idéia do que está errado? Eu penseiprotected
s campos e métodos @ são visíveis para os filhos, mesmo que estes estejam em um pacote diferent
Obrigado