En gros,

le clonage par constructeur permet de gérer les champs finaux
le clonage par une méthode spécifique (clone ou autre) permet de gérer le polymorphisme

Maintenant, tu peux combiner,...