Pessoal, estou com uma dúvida referente a classes abstratas.
Defini uma classe abstrata A1 com 2 metodos (metodoA, metodoB), e defini outra classe abstrata que implementa um destes metodos (metodoA), porem o mesmo esta com nivel de acessibilidade "protected", e pelo que andei lendo para sobrescrever um metodo, o mesmo não pode ser mais restritivo que o metodo pai.
Então porque o metodoA na classe A2 é protected e o compilador não apresenta problemas?
public class Principal extends A2 {
public void metodoB() {
System.out.println("Principal");
}
public static void main(String[] Args) {
Principal pr = new Principal();
pr.metodoA();
pr.metodoB();
}
}
abstract class A1 {
abstract void metodoA();
abstract public void metodoB();
}
abstract class A2 extends A1 {
protected void metodoA() { << METODO PROTECTED
System.out.println("A2");
}
}
Astork