Código atrás:java: método clone violación
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
}
}
Sé que estoy violando el significado del clon como estoy tratando de asignar los campos de un objeto a un objeto completamente diferente. Pero es la declaración de error que me está confundiendo.
Declaración: "Error: clone() ha protegido el acceso en el objeto"
La extensión de un clone()
debe hacer disponible a B también? Si eso es así, ¿entonces los valores de i y j deberían copiarse a l y m también? Es posible ?
si clone() está protegido, entonces está disponible para A y si B se extiende A, entonces B debería tener acceso a clonar? – Nil
@ rd4code Ver mi respuesta. B tiene acceso al método de clonación. Pero B debe acceder a ella a través de la herencia y no a través de A directamente. – CKing