CLRは型保護されていないメソッド定義object Clone()が必要です。この振る舞いをオーバーライドし、包含クラスのコピーを返す型安全メソッドを定義するのが一般的な方法です。
CLR
object Clone()
クローン作成が浅いコピーか深いコピーかを決定するのは作者次第です。参照を含む不変構造の場合は、詳細コピーを行うことをお勧めします。クラスそのものが参照されている場合は、浅いコピーを実装しても問題ありません。
注: C# 、上記の構文でインターフェイスメソッドをプライベートに実装できます。
C#