Reviewing some concepts and trying to wrap my head around this.
Imagine that we have a class Animal that extends to three other classes: Dog, Cat, Bird.
This animal class has a talk() and move() function. The talk function outputs "Animal talking" and the move function outputs "Animal moving".
For a dog, this is "Dog moving" and "Dog eating". For the Cat and Bird class, this difference is paralleled "Cat moving" etc.
Now, because of polymorphism, if I do
Animal charlietheBird = new Bird()
and then call in
charlietheBird.talk()
it will output
Bird talking
because the output is determined at runtime since the compiler knows that charlie is a type of Animal of the class Bird.
HOWEVER!!
I can simply do
Bird charlietheBird = new Bird();
and then calling charlietheBird.poop(); will give the same output, because the method would have been overridden.
Aucun commentaire:
Enregistrer un commentaire