Galera,
estou fazendo alguns simulados da SCJP aqui e me deparei com o seguinte código:
package exemplo;
interface XInterface{
public abstract void runDemo();
}
abstract class XClass implements XInterface{
String s="Java";
public abstract void runDemo();
{s="C++";}
}
public class Principal extends XClass implements XInterface{
{s="C#";}
public void runDemo(){
System.out.println("Demo"+super.s);
}
public static void main(String args[]){
XInterface xi=new Principal();
xi.runDemo();
}
}
A saída é: DemoC#
Não entendi essa chamada a super.s que esta dentro do método runDemo da class Principal.
Quando Ele chamou a variavel que fica no bloco de inicialização da classe, mas quando a gente chama super não seria estar acessando algo da classe pai?
Apesar que nesse caso a classe pai seria uma interface.
ser alguem puder me explicar o que aconteceu ficarei grato.
valeu.