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??
Para que serve o "super()"
A
2 Respostas
J
super() é uma chamada direta ao construtor da superclasse, ele só pode aparecer dentro de um construtor...
ex.:
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
}
}
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.:
public class Animal{
public Animal(String especie){
System.out.println(especie);
}
}
public Gato extends Animal{
public Gato(){
}
}
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!
A
valeu ae! ajudou bastante!! Abraço
Criado 11 de maio de 2006
Ultima resposta 12 de mai. de 2006
Respostas 2
Participantes 2
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo