Warum muss ich Clone überschreiben, wenn ich klonbare Klasse möchte? Alle Klassen reichen von Object
, also warum muss ich die Objekt klonen Methode überschreiben? Warum kann ich nicht einfach die ursprüngliche Objektklonmethode aufrufen?Warum muss ich Clone überschreiben, wenn ich klonbare Klasse möchte?
6
A
Antwort
8
Es ist einer der vielen "Designfehler" im JDK.
Clonable
sollte eine Schnittstelle mit einer clone()
Methode gewesen, aber es ist stattdessen ein marker interface und Object
hat eine „nichts tun“ Umsetzung der clone()
Methode ... und Sie sind mit Ihrer Frage gelassen.
Wenn Sie interessiert sind, listet this answer einige andere "Fehler" in Java auf.
1
Siehe hier: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html
Objekt des Klon-Methode auf einer Instanz aufrufen, die nicht die klonbar Schnittstelle ergibt Ausnahme CloneNotSupportedException geworfen nicht implementiert.
Auch ich denke, diese Diskussion würde für Sie hilfreich sein: Confusion about cloneable interface and object.clone() in java
Sie könnten diese Antwort auch zur Kasse wollen: http://stackoverflow.com/questions/3652748/cloning-objects-in-java- 3-Fragen/3652767 # 3652767 – nkr
Sie können immer eine Kopiermethode in Ihre Klasse schreiben. Sie müssen nichts überschreiben. –