Olá ,
uma duvida de conceito para entender herança…pois minha dificuldade
e visualizar qdo usar os metodos do pai ou do filho…
Não sei se estou falando besteira foi o seguinte :
-
qdo a classe super tem um metodo
-
e a classe sub herdade essa classe com metodo
Minha conclusão : -
qdo usamos :
Animal h = new Animal();
h.eat();
Resposta : imprime o metodo do paiAnimal h = new Horse();
h.eat();
Resposta : imprime o metodo do filhoAté aqui tudo bem o que estava em duvida era o seguinte quando poderia chamar o metodo dos filhos dessa forma:
Animal h = new Horse();
h.printYour(); //erro
h.buck(); /erroO que conclui e não sei se está correto :
a)- quando uso Animal h = new Horse() visualizo os metodos em comum nas duas classes mas é executado de quem é o construtor Horse().b)- quando uso Horse h = new Horse() visualizo todos metodos dessa classe e não da super-classe :
h.buck();
h.eat();
h.printYour();
e ao executar h.eat() vai executar da classe subc)- quando uso Animal a = new Horse() não consigo visualizar os metodos h.buck(),h.printYour() pois esses metodos são da classe sub e não existe esses metodos em Animal.
Para entender a herença acima estou pensando na conclusão a,b,c.
Gostaria de saber se meu pensamento está correto ou está errado?
Se alguém quiser dar ajuda no entendimento se é esse o caminho pra o entendimento ou se estou errado …fico no aguardo de uma ajuda
abs
--classe super
public class Animal {
public void eat(){
System.out.println("Animal");
}
}
--sub classe
public class Horse extends Animal {
public void printYour(){
System.out.println("Horse...printYour()");
}
public void buck(){
System.out.println("Horse...buck()");
}
public void eat(){
System.out.println("Horse...eat()");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal h = new Animal();
h.eat();
}
}