Это мое понимание различий между переопределением и перезаписью с точки зрения реального примера:
Предположим, что у вас есть компания-производитель автомобилей. Вы известны и довольны своими клиентами, так как они всегда доверяют вам и покупают ваши продукты.
Чтобы продолжить свой бизнес, у вас есть, в основном, 2 варианта:
Все вещи проходят, и вы знаете, что вы идете по правильному пути. Таким образом, вы хотите не только сохранить предыдущие модели, но и продолжать их совершенствовать. Хотя, как получилось? Возможно, добавив некоторые новые функции в существующие модели! Теперь новые модели имеют все возможности PLUS недавно расширенные функции.
Вы знаете, что ваш путь был неправильным! какой ужасный подход !! Вы быстро замечаете, что компания должна изменить всю технологию, в противном случае она будет испытывать резкие ситуации (например, банкротство или около того ...)
В конце концов, с точки зрения программирования, первый подход относится к переопределению, так как вы добавляете несколько новых ПОВЕДЕНИЙ к своим автомобилям, сохраняя прежнее поведение, которое было у автомобиля, тогда как второй подход относится к перезаписи, поскольку вы хотите изменить поведение (я) полностью и разрабатывать новые функции с нуля.
Надеюсь, что это помогает вам.