Alguem dá pra me explicar pra que serve a função “super()” ??? sei que é algo ligado a setar variáveis de outra classe pra nao ficar toda hora dando setVARIAVEL… alguem me explica isso??
super() é uma chamada direta ao construtor da superclasse, ele só pode aparecer dentro de um construtor…
ex.:
[code]public class Carro{
public Carro(){
System.out.println("Construtor do carro sem parametros… ");
}
public Carro(String nome){
System.out.println("Construtor do carro - nome = "+nome);
}
}
public class Ferrari extends Carro{
public Ferrari(){
super(); //chamando o construtor da classe Carro
}
}
public class Porsche extends Carro{
public Porsche(){
super(“Boxster”); //chamando o construtor da classe Carro
}
}[/code]
e ele não é pra facilitar nada, ele é obrigatório, se você não colocar o compilador coloca um sem parametros, mas se não houver um construtor sem parametros na superclasse, sua classe não compila…
ex.:
[code]public class Animal{
public Animal(String especie){
System.out.println(especie);
}
}
public Gato extends Animal{
public Gato(){
}
}[/code]
a classe Gato não vai compilar, pois o compilador tentará inserir uma chamada a super() no construtor de Gato, mas Animal não tem um construtor sem parametros, o correto seria:
public Gato extends Animal{
public Gato(){
super("Gato");
}
}
No final você pode deduzir que os construtores de todas as classes que estão acima da que está sendo instanciada serão chamados…
Espero que tenha ajudado em alguma coisa!
valeu ae! ajudou bastante!! Abraço