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 penseiprotecteds campos e métodos @ são visíveis para os filhos, mesmo que estes estejam em um pacote diferent

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion