【发布时间】:2012-09-14 12:58:47
【问题描述】:
后面的代码:
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 吗?这可能吗?
【问题讨论】: