Olá pessoal, eu posso ter um metedo protected abstract, SIM ou NAO justifiquem.
Abracos!!!
Olá pessoal, eu posso ter um metedo protected abstract, SIM ou NAO justifiquem.
Abracos!!!
O código abaixo compila e roda corretamente. Sua saída é:
Derivada.metodo
OutraDerivada.metodo
abstract class Base {
protected abstract void metodo ();
}
class Derivada extends Base {
public void metodo () {
System.out.println ("Derivada.metodo");
}
}
class OutraDerivada extends Base {
protected void metodo() {
System.out.println ("OutraDerivada.metodo");
}
}
class TesteProtectedAbstract {
public static void main(String[] args) {
Base b = new Derivada();
b.metodo();
Base b2 = new OutraDerivada();
b2.metodo();
}
}
Contanto que esteja no mesmo pacote, vai que vai.
Se a classe não for default ( [color=violet]class[/color] Classe{}) não precisa estar no mesmo pacote, a questão dos pacotes só tem relevância nesse caso,
se a classe for public e o método for protected, ai as classes do pacote E as que EXTENDEM ela FORA do pacote vão ter acesso à esse método 
por ser um método abstrato , a classe também precisa ser abstrata, e esse método deve ser implementado pela primeira classe contreta que extendê-la !!