Правильный способ реализации ICloneable
Как правильно реализоватьICloneable
в иерархии классов? Скажем, у меня есть абстрактный классDrawingObject
, Еще один абстрактный классRectangularObject
наследует отDrawingObject
, Тогда есть несколько конкретных классов, таких какShape
, Text
, Circle
и т.д., что все наследуют отRectangularObject
, Я хочу реализоватьICloneable
наDrawingObject
а затем перенести его вниз по иерархии, копируя доступные свойства на каждом уровне и вызывая родительскийClone
на следующем уровне.
Однако проблема в том, что, поскольку первые два класса являются абстрактными, я не могу создать их объекты вClone()
метод. Таким образом, я должен дублировать процедуру копирования свойств в каждом конкретном классе. Или есть лучший способ?