Что может полиморфизм сделать это наследство не может? [Дубликат]

На этот вопрос уже есть ответ:

В чем основная разница между наследованием и полиморфизмом? 15 ответов

Представь, что у нас есть классAnimal распространяется на три других класса:Dog, Cat, Bird.

У этого класса животных естьtalk() а такжеmove() функция. Функция разговора выводит «Разговор животных», а функция перемещения выводит «Движение животных».

Для собаки это "Собака движется" и "Собака ест". ДляCat а такжеBird класс, эта разница параллельна «движению кота» и т. д.

Теперь из-за полиморфизма, если я сделаю

Animal charlietheBird = new Bird()

а потом позвони

charlietheBird.talk()

будет выводить

Птица разговаривает

потому что вывод определяется во время выполнения, так как компилятор знает, что Чарли является типомAnimal классаBird.

ТЕМ НЕ МЕНИЕ!

Я могу просто сделать

Bird charlietheBird = new Bird();

а потом звонюcharlietheBird.poop(); выдаст тот же результат, потому что метод был бы переопределен.

Ответы на вопрос(3)

Ваш ответ на вопрос