Bem eu sei que a utilização do super e para referenciar a superclasse mas tenho algumas dúvidas tais como:
1ª
vamos supor que eu tenho uma classe filha e que sua super classe também
é uma classe filha quando eu utilizo o super eu referêncio somente a classe
pai dessa classe filha minha não importando quantas classes super eu tiver…?
2ª
eu soh posso chamar meu construtor super dentro de outro construtor ou pode ser em um método qualquer…?
1 - sim, vc se refere somente a super da class principal da subclasse.
class A{
void metodo(){}}
class B extends A{
void metodo(){}}
class C extends B{
void z(){
super.metodo(){}
}
}
// vc está chamado o metodo() da classe B e nao da class A
2 - a chamada super de um construtor so chama outro construtor… e deve ser a primeria linha do construtor e nao pode ser em outro local. Somente dentro de construtores. Você nao pode chamar super() ou this() chamando um construtor dentro do metodo. invalido
class Z{
Z(){}}
class W extends Z{
void g(){super.Z();}
//isso nao compila
Voce pode chamar um metodo da superclasse com o super sim:
[code]
public class A{
public void umMetodo(){
System.out.println("Metodo da Pai");
}
}[/code]
[code]public class B extends A{
public void outroMetodo(){
System.out.println("Metodo Filha");
super.umMetodo();
}
public static void main (String [] args){
B b = new B();
b.outroMetodo();
}
} [/code]
Que exibira:
“Metodo Filha!”
“Metodo Pai”
Mas como já foi dito, um pouco de empirismo não mata.