nr5*_*nr5 7 java clone cloneable
代码背后:
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
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我违反了克隆的含义,因为我试图将一个对象的字段分配给一个完全不同的对象.但它的错误陈述使我感到困惑.
声明:"错误:clone()在Object中具有受保护的访问权限"
扩展A还应该clone()提供给B吗?如果是这样,那么i和j的值应该复制到l和m吗?这可能吗 ?
clone()是受保护的方法,并且可以在子类中public访问,可以通过访问来覆盖它.
class A implements Cloneable{
.....
@Override
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |