Hier ist mein Testcode zum Überprüfen der Klonmethode,
%Vor%Fehler beim Kompilieren: clone () hat einen geschützten Zugriff in java.lang.Object bei obj1.clone ()
Danke
Zusammen mit Antwort bearbeiten: Endlich sehe ich, dass meine Testumgebung funktioniert, wenn ich die Cloneable-Schnittstelle implementiert habe und die Clone-Methode überschrieben habe. Es funktioniert nicht mit dem Überschreiben der clone () - Methode aus der Object-Klasse. Hier ist der modifizierte Code,
%Vor%2. Grund dafür, dass clone () geschützt ist: Ich habe das aus dem Buch Core Java gefunden,
Die Klonmethode ist eine geschützte Methode von Object, was bedeutet, dass Ihr Code sie nicht einfach aufrufen kann. Nur die Employee-Klasse kann Employee-Objekte klonen.
Es gibt einen Grund für diese Einschränkung. Überlegen Sie sich, auf welche Weise die Object-Klasse Klone implementieren kann. Es weiß nichts über das Objekt, so dass es nur eine Feld-für-Feld-Kopie machen kann. Wenn alle Datenfelder im Objekt Zahlen oder andere Grundtypen sind, ist das Kopieren der Felder einfach.
Wenn das Objekt jedoch Verweise auf Unterobjekte enthält, erhalten Sie durch Kopieren des Feldes einen weiteren Verweis auf das Unterobjekt, sodass das Original und die geklonten Objekte noch einige Informationen teilen.
Ich hoffe, dies ist hilfreich für andere