在Java中所有的类都是Object的子类。
在Object类中有一个clone方法定义如下:
protected native Object clone() throws CloneNotSupportedException;
该方法的修饰符为protected,表示该方法可以在子类中调用
然后结果是调用不了
网上有回答是需要实现Cloneable接口,但即使实现了,也调用不到。
不实现Cloneable接口,只是报CloneNotSupportedException异常。
只能重写clone方法,并且使用super.clone()
疑惑这是为什么呢?
Cloneable インターフェースは単なるフラグであり、内部は空です。
2) オブジェクトのコピーを取得するには、Object クラスの clone メソッドを使用します。Object の clone メソッドは、より効率的です。
clone メソッドを使用するためのいくつかの条件があります。 リーリー
http://www.cnblogs.com/gw811/...
を参照してください。
電話をかけることができます:
リーリーclone() は保護されたスコープです。 Cloneable インターフェイスを継承した後、メソッドをオーバーライドし、メソッド内で親クラスの clone() メソッドを呼び出す必要があります。同時に、デフォルトのクローンは参照オブジェクトの浅いクローンにすぎません。実行して自分で試してみるコードを提供します:
リーリー リーリー リーリーA は複製可能なインターフェースを継承し、B への参照を保持します。
Cloneable インターフェイスを実装し、 clone() メソッドをオーバーライドします。
最初に見たときは非常に混乱しましたが、試してみると、オブジェクト内の clone メソッドが直接呼び出されていることがわかりました。
コードは次のとおりです:
パブリック クラス CommonTest は Cloneable を実装します{
リーリー}