コードビハインド:
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 にもコピーする必要がありますか? これは可能ですか?