Olá, pessoal ! O código abaixo…
public interface Interface {
public void Funcao();
}
public class Base implements Interface
{
public void Funcao() {
System.out.println("Base.Funcao");
}
}
public class Test extends Base
{
public void Funcao() {
System.out.println("Test.Funcao");
}
public static void main( String[] args )
{
Test obj = new Test();
Interface i = obj;
Base b = (Base) i;
obj.Funcao();
i.Funcao();
b.Funcao();
}
}
…imprime isto:
“Test.Funcao”
“Test.Funcao”
“Test.Funcao”
Eu imaginava que a linha b.Funcao() deveria imprimir a frase “Base.Funcao”.
Então eu tenho duas questões:
(a) Por que ela não imprime isso ?
(b) O que é necessário fazer para que o método ‘Base.Funcao’ seja executado ?
Obrigado a todos!
Luciano.