Java unterschied zwischen super.clone und clone?

...komplette Frage anzeigen

3 Antworten

Um welche konkrete Klasse geht es denn?

Wissbegieriger1 08.07.2017, 12:17

Was für Klasse?

0
Wissbegieriger1 08.07.2017, 12:54
@Plokapier

Es soll die ganze Klasse mit allen Klassen die es hat einfach halt alles kopieren.

0
Plokapier 08.07.2017, 12:57
@Wissbegieriger1

super.clone() ist nur relevant, falls du eine eigene clone-Methode geschrieben hast, die die originale clone()-Methode, die von Object geerbt wird, überschreibt. Wäre das der Fall, signalisierst du mit dem "super", dass die originale clone()-Methode der Superklasse "Object" aufrufen willst und nicht die in der momentanen Klasse definierte.

0

super.clone ist die Clone methode der übergeordneten (Basis) Klasse.

Auch wenn die implementierung eventuell statisch ist kann sie dennoch verschieden sein.

Beipsiel:

Class Foo{

static clone(Foo objectToClone){

//Do Foo clone

}

}

class Bar{

override static clone(Bar objectToClone){

//Do BarClone

}

doSomething(){

Bar test = new Bar()

clone(test) --> Bar Clone wird ausgeführt

super.clone(test) --> Foo Clone wird ausgeführt.

}

}

clone ist die clone-Methode von der aktuellen Klasse und super.clone die von der super-Klasse..

Was möchtest Du wissen?