JAVA 대상 clone 방법 코드 인 스 턴 스 분석
이 인 터 페 이 스 는 방법 이 하나 도 없 지만 clone 방법 을 사용 하려 면 이 인 터 페 이 스 를 실현 해 야 합 니 다.그렇지 않 으 면 Clone NotSupported Exception 이상 을 던 져 야 합 니 다.
2.clone 방법의 반환 값
먼저 두 종류의 코드 를 동봉 합 니 다.
package pojo;
/**
* @Author : ZGQ
* @Date : 2020/3/11 22:12
* @Version : 1.0
*/
public class Person implements Cloneable{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
System.out.println(super.clone().getClass());
Person p = (Person) super.clone();
p.name=this.name;
p.age=this.age;
return p;
}
}
package pojo;
/**
* @Author : ZGQ
* @Date : 2020/3/11 22:21
* @Version : 1.0
*/
public class Girl extends Person {
char cup;
public Girl(String name, int age, char cup) {
super(name, age);
this.cup = cup;
}
@Override
public Object clone() throws CloneNotSupportedException {
System.out.println(super.clone().getClass());
Girl girl = (Girl) super.clone();
girl.cup=this.cup;
return girl;
}
@Override
public String toString() {
return "Girl{" +
"cup=" + cup +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
나 는 처음에 매우 곤 혹 스 러 웠 다.왜 clone 방법 은 부모 클래스 의 인 스 턴 스 를 하위 클래스 의 인용 에 맡 길 수 있 는 지,출력 을 보 니 첫 번 째 clone 때 만 든 것 이 하위 클래스 의 대상 이라는 것 을 알 수 있 었 다.boys 클래스 를 만 들 거나 Person.clone 을 직접 호출 하 는 것 도 마찬가지 입 니 다.clone 방법 을 사용 하 는 사람 이 인 스 턴 스 를 만 듭 니 다.
girl.clone()호출
person.clone()호출
boy.clone()호출
3.만약 에 하나의 클래스 가 Cloneable 인 터 페 이 스 를 실현 하지 못 하면 clone 에 의 해 이 루어 지지 않 고 그의 하위 클래스 도 진정한 깊 은 복 제 를 실현 할 수 없다.
한 마디 만 더 하 자 면,왜 클 라 이언 트 방법 을 클 라 이언 블 에 정의 하지 않 습 니까?
4.상기 표기 법 은 심 복 된 표기 법 이다
5.왜 클 라 이언 트 를 호출 하여 하위 클래스 의 인 스 턴 스 를 만 들 었 습 니까?
분명 한 것 은 이렇게 하 는 것 이 도리 에 맞 는 것 이지 만 자바 언어 는 우리 에 게 세부 사항 을 숨 기 고 뒷문 을 여 는 문법 이다.포장 류 가 연산 자 를 사용 하여 직접 연산 할 수 있 는 것 처럼 파렴치 하 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.