Kod za:Java: klon naruszenie metoda
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
}
}
wiem, że jestem naruszono znaczenie klonie jak próbuję przypisać pola jednego obiektu do zupełnie innego obiektu. Ale to błąd, który mnie myli.
komunikat: "Błąd: clone() został zabezpieczony dostęp w obiekcie"
przedłużenia powinna clone()
dostępne również do B? Jeśli tak, to czy wartości i i j powinny być również skopiowane do l i m? Czy to możliwe ?
jeśli klon() jest chroniony, to jest dostępny dla A i jeśli B rozszerza A, to B powinno mieć dostęp do klonu? – Nil
@ rd4code Zobacz moją odpowiedź. B ma dostęp do metody klonowania. Ale B powinien uzyskać do niego dostęp poprzez dziedziczenie, a nie przez A bezpośrednio. – CKing