Maneira correta de implementar o ICloneable
Qual é a maneira correta de implementarICloneable
em uma hierarquia de classes? Digamos que eu tenha uma aula abstrataDrawingObject
. Outra classe abstrataRectangularObject
herda deDrawingObject
. Existem várias classes concretas, comoShape
, Text
, Circle
etc. que todos herdam deRectangularObject
. Eu quero implementarICloneable
emDrawingObject
e, em seguida, carregue-o pela hierarquia, copiando as propriedades disponíveis em cada nível e chamando osClone
no próximo nível.
O problema, porém, é que, como as duas primeiras classes são abstratas, não posso criar seus objetos no diretórioClone()
método. Portanto, devo duplicar o procedimento de cópia da propriedade em cada classe concreta. Ou há um jeito melhor?