Olá, Pessoal!
A dúvida que eu tenho é um pouco idiota, mas alguém poderia me ensinar a fazer sobrescrita de métodos?
Olá, Pessoal!
A dúvida que eu tenho é um pouco idiota, mas alguém poderia me ensinar a fazer sobrescrita de métodos?
É 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!");
}
}
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 só 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)
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/