Dúvida em Polimorfismo

3 respostas
I

Olá, Pessoal!

A dúvida que eu tenho é um pouco idiota, mas alguém poderia me ensinar a fazer sobrescrita de métodos?

3 Respostas

B

É só você criar um método com a mesma assinatura do método da sua classe que foi herdada, por exemplo:

public class Animal {
	public void falar(){
		System.out.println("Eu falo como um gato!");
	}
}
public class Cachorro extends Animal {
	public void falar(){ //Sobrescrevendo o método "Polimorfismo"
		System.out.println("Eu falo como um cachorro!");
	}
}
kcobainnn

o exemplo acima é explicativo, mas só uma coisa, métodos estáticos não são sobrescritos.

o correto seria algo como:

class Animal {  
    public void comer(){  
        System.out.println("Animal genérico comendo...");  
    }  
}  


class Cachorro extends Animal {  
    public void comer(){  
        System.out.println("Cachorro comendo...");  
    }  
}  

class Gato extends Animal {  
    public void comer(){  
        System.out.println("Gato comendo...");  
    }  
}
Ao sobrescrever um método:

ele não pode ser estático;

ele não pode ser privado;

ele nunca pode ser mais restritivo que o método da super classe, por exemplo, se o método da super classe for protected, o método sobrescrito  pode ser protected ou public;

caso você altere a assinatura dele (os parâmetros do seu método) você não está sobrescrevendo e sim criando um novo método, isso é chamado de sobrecarga de métodos (overload)
di.magdaleno

IsraelSmith:
Olá, Pessoal!

A dúvida que eu tenho é um pouco idiota, mas alguém poderia me ensinar a fazer sobrescrita de métodos?

Só para complementar o que já foi dito acima:

http://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/

Criado 10 de abril de 2013
Ultima resposta 11 de abr. de 2013
Respostas 3
Participantes 4