Предположим, что у меня есть два класса: Animal and Dog. Собака является подклассом Animal. Я делаю следующий код:
Animal a = new Dog();
Теперь я могу вызывать методы класса Dog через переменную.
Но мой вопрос заключается в следующем: если я могу вызвать все методы Animal через объекты Dog (наследование), чем использовать принцип полиморфизма? Я могу просто объявить:
Dog d = new Dog();
В этом объявлении можно использовать все методы Animal и Dog. Так зачем использовать полиморфизм? Большое спасибо за ваш ответ.