В большинстве случаев методы базового класса у классов-наследников приходится переопределять - объект класса "кошка" выполняет метод "идти" совсем не так, как объект класса "амеба". Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса "кошка" метод "идти" класса "животное". Такое свойство объектов переопределять методы наследуемого класса называется полиморфизмом.