Olá pessoal estou com um dúvida terrível…
Estou estou estudando overrinden e overloaden
Vi num seguinte exemplo:
public class Animal{
public void eat(){
System.out.println("Animal");
}
}
class Horse extends Animal{
public void eat(){
System.out.println("Horse");
}
public void eat(String s){
System.out.println("Duvida");
}
public static void main(String[] args){
Animal ah = new Horse(); // imprimi Horse
}
}
Eu não entendi muito bem. Confundi com o outro exemplo abaixo:
class Animal{}
calss Horse extends Anima{}
class UseAnimals{
public void doStuff(Animal a){
System.out.println("Animal");
}
public void doStuff(Horse h){
System.out.println("Horse");
}
public static void main(String[] args){
Animal ah = new Horse(); // imprimi Animal
}
}
Ficou confuso não entendi nada.
Esses exemplos são do Capitulo 5 do livre Certificação 1.4 da Kathie Sierra.
Alguem pode me dar uma :idea:
No primeiro achei que fosse imprimir animal, pois os metodos estao sendo overload e a que metodo chamar é decidido pela referencia e não ao objeto em execução…