Теоретически, когда вы создаете подкласс, вы не изменяете унаследованное поведение, а просто «улучшаете» его, делая его более специфичным для ваших нужд.
Например, вы можете расширить GregorianCalendar наMyGregCal, чтобы использовать его для вычисления знака зодиака, соответствующего данной дате.Но вам следует избегать его изменения, чтобы, скажем, рассчитать юлианский календарь.Зачем?Потому что каждый метод, который принимает GregorianCalendar, будет принимать MyGregCal, и будет ожидать, что он обеспечивает функциональность GregorianCalendar.Если этого не произойдет, то плохие вещи (хуже, неожиданные плохие вещи) могут происходить везде.
Итак, если вы не можете получить необходимую функциональность, не нарушив contract
изродительский класс, вы должны искать в другом месте.Напишите класс с нуля или из более простого родительского класса (Properties
?)