この非 final クラスは、super.clone()
を呼び出さない clone
メソッドを定義しています。
クラス A がサブクラス B によって拡張され、サブクラス B が super.clone()
を呼び出すなら、クラス B の clone
メソッドは、型 A のオブジェクトを返す可能性が高いです。
これは clone
のための汎用規約に違反します。
すべての clone
メソッドが super.clone()
を呼び出すなら Object.clone()
が呼び出されることが保証され、常に正しい型のオブジェクトが返されます。