-Code hinter:java: Klon-Methode Verletzung
class A implements Cloneable
{
int i, j;
A(int i, int j)
{
this.i = i;
this.j = j;
}
A()
{
}
}
class B extends A
{
int l, m;
B()
{
}
B(int l, int m)
{
this.l = l;
this.m = m;
}
public static void main(String l[])
{
A obj = new A(1, 2);
B obj1 = (B) obj.clone(); // ERROR
}
}
Ich weiß, dass ich die Bedeutung des Klons bin zu verletzen, wie ich die Felder von einem Objekt zu einem völlig anderen Objekt zuweisen versuchen. Aber es ist die Fehlermeldung, die mich verwirrt.
Statement: "Fehler: clone() hat den Zugriff auf Objekt geschützt"
Eine Erweiterung sollte auch clone()
zur Verfügung B machen? Wenn das so ist, sollten die Werte von i und j auch nach l und m kopiert werden? Ist das möglich ?
Wenn clone() geschützt ist, dann ist es für A verfügbar und wenn B A erweitert, sollte B Zugriff auf klonen haben? – Nil
@ rd4code Siehe meine Antwort. B hat Zugriff auf die Klonmethode. Aber B sollte darauf durch Vererbung und nicht direkt durch A zugreifen. – CKing