2017-03-18 7 views
0

기본적으로 기본 클래스가 test001 인이 프로그램을 만들려고합니다.이 클래스는 기본적으로 약속 개체의 간단한 복사본을 만들고 다른 기본 클래스 인 test002는 전체 복사본을 만듭니다. 그래서 기본적으로 나는 두 클래스를 모두 지원하는 Appointment 클래스의 코드를 추가합니다. 여기에 무엇을 넣었지만 문제는 이미 복제본을 사용했다는 오류가 발생했습니다. 어떻게해야합니까? 첫번째 클론()이 얕은 용이고 두 번째는여러 클론 방법을 사용하여 .. Java

당신은 당신의 방법을 다른 namens를 제공해야
public Object clone() throws CloneNotSupportedException { 
    return super.clone(); 

} 
public Object clone() throws CloneNotSupportedException 
{ 
    Appointment ap = (Appointment) super.clone(); 

    ap.date = (Date) date.clone(); 

    return ap; 
} 

답변

0

, 서명이 정확히 동일 딥 카피입니다 : 같은 방법 이름, 동일한 매개 변수, 같은 리턴 타입 .. .. 컴파일러는 선택할 방법을 어떻게 결정해야합니까? 그래서 메서드 중 하나의 이름을 바꿉니다.

+0

나는 clone 대신 clone1을 사용할 수 있습니까? 윌 여전히 작동합니까? –

+0

예를 들어 cloneShallow와 cloneDeep 중 한 가지 이름 만 지정하면됩니다. 이제 시도해 보셔야합니다. 그러나 지금은 분명히 좋습니다.) – Markus

+0

고마워요! Btw 난 그냥 대답을 기대하고있다 .. 한가지 더 질문이 기본적으로, 나는 3 속성, 일, 월, 년이 날짜 클래스를 만든 다음이 날짜 클래스를 같은 약속 클래스에서 사용 : private Date date ; .. 이제, 나는 setters와 getter를 사용하여 사용자로부터 값을 가져와야한다. 속성을 처리하는 방법을 알고있다. 그냥 개체를 선언하고 ap.setName ("Liam") 또는 ap.setAge (8); 하지만 setDate()로 어떻게 할 수 있습니까? :/ –