코드 :자바 : 뒤에 복제 방법 위반
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
}
}
나는 완전히 다른 개체를 하나의 개체의 필드를 지정하려고 나는이 클론의 의미를 위반하고 있음을 알고있다. 그러나 저를 혼동시키는 오류 진술.
진술 : "오류 : 클론() 객체에 액세스 보호하고있다"또한 B 사용할 수 clone()
을해야 확장
를? 그렇다면 i와 j의 값을 l과 m에도 복사해야합니까? 이것이 가능한가 ?
clone()이 보호 된 경우 A에 사용할 수 있고 B가 A를 확장하면 B가 복제에 액세스 할 수 있어야합니까? – Nil
@ rd4code 내 대답보기. B는 복제 방법에 액세스 할 수 있습니다. 그러나 B는 A를 통해서가 아니라 상속을 통해 액세스해야합니다. – CKing