Мы никому ничего не должны.
А вот те, кто использует наш класс, те должны использовать его так, как мы им позволим.
Обычно в классах, предназначенных для дальнейшего расширения, подразумевается переопределяемая часть и базовая, которую менять не следует.
Проектируя класс, мы решаем как люди смогут его использовать. Расширение, это один из вариантов использования.
Как мы можем накладывать ограничения на публичный интерфейс, так можем накладывать ограничения и на расширение.
Используя интерфейс родителя, я вызову переопределённую реализацию метода (для объектов). Имея же только имя базового класса я смогу вызвать только базовую реализацию статического метода.