Para que serve o "super()"

2 respostas
A

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

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