Super

Bem eu sei que a utilização do super e para referenciar a superclasse mas tenho algumas dúvidas tais como:


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…?


eu soh posso chamar meu construtor super dentro de outro construtor ou pode ser em um método qualquer…?

super(); só referencia a hierarquia imediatamente superior.

Queres chamar o construtor por um método ou queres chamar o método “superior” do próprio método?

Até!

Não entendi cara…? se tem um exemplo simples ?

http://mindprod.com/jgloss/super.html

Ajuda em algo?

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

flw :smiley:
super

Olá…

Quanto a segunda pergunta…

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. :wink: