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 pai
Animal h = new Horse(); h.eat(); Resposta : imprime o metodo do filho
Até 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 sub
c)- quando uso Animal a =
new Horse()não consigo visualizar os metodosh.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();
}
}
). Os filhos podem obter coisas do pai e simplesmente mudá-las. Eles não podem destrui-las/escondê-las, mas podem mudá-las ( sobre-escrita)