Подробно разбираем переопределение методов в Java: как overriding обеспечивает полиморфизм во время выполнения, чем отличается от
overloading, какие действуют правила (сигнатуры, доступ, исключения, ковариантность), как использовать
@Override и вызывать логику родителя через
super. Покажем практические примеры и разберём типичные ошибки.