在Java中所有的类都是Object的子类。
在Object类中有一个clone方法定义如下:
protected native Object clone() throws CloneNotSupportedException;
该方法的修饰符为protected,表示该方法可以在子类中调用
然后结果是调用不了
网上有回答是需要实现Cloneable接口,但即使实现了,也调用不到。
不实现Cloneable接口,只是报CloneNotSupportedException异常。
只能重写clone方法,并且使用super.clone()
疑惑这是为什么呢?
Cloneable 인터페이스는 단지 플래그일 뿐이며 비어 있습니다.
으아아아Object의 복제 방법은 로컬 방법이므로 더 효율적입니다.
복제 방법을 사용하기 위한 몇 가지 조건
2) 객체의 복사본을 얻으려면 Object 클래스의 clone 메소드를 사용할 수 있습니다.
3) 파생 클래스의 누적 clone 메서드를 재정의하고 공개로 선언합니다.
4) 파생 클래스의 clone 메소드에서 super.clone()을 호출합니다.
자세한 내용은
를 참고하세요.http://www.cnblogs.com/gw811/...
전화:
으아아아clone()은 보호되는 범위입니다. Cloneable 인터페이스를 상속받은 후에는 메서드를 재정의한 다음 메서드에서 상위 클래스의 clone() 메서드를 호출해야 합니다. 동시에 기본 복제본은 참조 개체의 단순 복제본일 뿐입니다. 직접 실행해보고 시도해 볼 수 있는 코드를 알려드리겠습니다.
으아아아 으아아아 으아아아A는 복제 가능한 인터페이스를 상속하고 B에 대한 참조를 보유합니다.
Cloneable 인터페이스를 구현하고 clone() 메서드를 재정의합니다.
처음 봤을 때 굉장히 헷갈렸는데, 객체에 있는 clone 메소드가 직접 호출되는 것을 발견했습니다.
코드는 다음과 같습니다.
공용 클래스 CommonTest는 Cloneable을 구현합니다.{
으아아아}