后面的代码:
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
}
}
我知道我违反了克隆的含义,因为我试图将一个对象的字段分配给一个完全不同的对象。但它的错误声明让我感到困惑。
声明:“错误:clone() 在对象中具有受保护的访问权限”
扩展 A 也应该clone()
对 B 可用?如果是这样,那么 i 和 j 的值也应该复制到 l 和 m 吗?这可能吗 ?