В конечном счете, вы должны спросить, почему базовый класс должен реализовывать новую реализацию по умолчанию. Может быть, вы должны делегировать? Почему вы изменяете поведение, которое влияет на все классы?
Но если вам нужно изменить поведение, которое должны наследовать все дети ...
Объедините 1 и 2.
Испытание с использованием манекена в качестве контрольного теста.
Затем протестируйте, используя как минимум 1 практическое использование поведения, чтобы убедиться, что оно работает с реальным случаем.
Разработчики, пишущие детям, несут ответственность за их поведение.
В конечном счете, кто-то должен быть уверен, что он работает со всеми существующими дочерними элементами перед выпуском, чтобы вы не повредили этих дочерних элементов, но если вы доказали, что реализация базового класса верна, то любые изменения должны быть сделаны теми объектами, которые расширяют базовый класс класс.