Hi,
habe eine Frage zu einem Code-Beispiel:
Mit super ruft man ja immer die Oberklasse auf. In diesem Fall ist das doch TestClone, oder nicht? Wenn ich den Befehl in TestClone.clone() umwandle, kommt folgende Fehlermeldung:
Und wieso muss das in TestClone gecastet werden? Das zu kopierende Objekt ist ja schon vom Typ TestClone!
Liebe Grüße
Reality
habe eine Frage zu einem Code-Beispiel:
Code:
class TestClone implements Cloneable{
int a;
double b;
//Diese Methode ruft die clone()-Methode von Object auf
TestClone cloneTest()
{
try{
//Aufruf von clone in Object
return (TestClone) super.clone();
} catch (CloneNotSupportedException e)
{
System.out.println("Das Clonen ist nicht zulässig!");
return this;
}
}
}
class CloneDemo
{
public static void main(String[] args) {
TestClone x1= new TestClone();
TestClone x2;
x1.a= 10;
x1.b= 20.98;
x2= x1.cloneTest(); //Clone x1
System.out.println("x1: "+x1.a +" "+ x1.b);
System.out.println("x2 :"+ x2.a +" "+ x2.b);
}
}
Code:
return (TestClone) super.clone();
"CloneDemo.java": Auf Methode clone(), nicht-statisch, kann aus einem statischen Kontext heraus nicht zugegriffen werden in Zeile 12, Spalte 36
Und wieso muss das in TestClone gecastet werden? Das zu kopierende Objekt ist ja schon vom Typ TestClone!
Liebe Grüße
Reality