codice dietro:java: clone metodo violazione
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
}
}
So che sto violando il significato di clone di come sto cercando di assegnare i campi di un oggetto a un oggetto completamente diverso. Ma è l'errore che mi confonde.
Dichiarazione: "Errore: clone() ha protetto l'accesso in oggetto"
l'estensione di una dovrebbe rendere clone()
a disposizione anche B? Se è così, i valori di iej dovrebbero essere copiati anche in lem? È possibile ?
se clone() è protetto, allora è disponibile per A e se B estende A, allora B dovrebbe avere accesso al clone? – Nil
@ rd4code Vedi la mia risposta. B ha accesso al metodo clone. Ma B dovrebbe accedervi attraverso l'ereditarietà e non direttamente con A. – CKing