Чтобы оставить неоднозначным, хотите ли вы, чтобы установщик в унаследованных классах нарушал принципы ООП - то есть, если класс (абстрактный или нет) имеет открытый / защищенный установщик (абстрактный или нет), то все наследующие классы должны также;если класс этого не делает, то наследовать классы не следует.
Еще один способ подумать об этом - рассмотреть свойства, такие, что чтение и запись только для чтения является частью контракта класса.Поскольку экземпляры наследующих классов должны придерживаться отношения «Is-a» ( LSP ), наследующие классы не могут «добавить установщик» там, где его не было у основного класса, поскольку тот факт, что основнойкласс имел свойство без, так как сеттер является частью определения основного класса.Фактически, поскольку основной класс не может изменить рассматриваемое свойство с помощью установщика, поэтому все наследующие классы ДОЛЖНЫ гарантировать одинаковое поведение.
Рассмотрите возможность использования защищенного вспомогательного поля;затем вы можете разделить это свойство на свойство только для чтения и отдельный метод установки.Тогда у основного класса может быть только свойство, а у подкласса может быть метод установки , о котором главный класс не знает.Тем не менее, я не уверен, что это был бы хороший дизайн.