これは、クラスが実装できる compareTo コントラクトに関するものです。
オブジェクト指向の抽象化の利点をあきらめない限り、compareTo コントラクトを維持しながらインスタンス化可能なクラスを新しい値コンポーネントで拡張する方法はありません。同じ回避策も適用されます。Comparable を実装するクラスに値コンポーネントを追加する場合は、それを拡張しないでください。最初のクラスのインスタンスを含む無関係なクラスを作成します。次に、このインスタンスを返す「view」メソッドを提供します。これにより、必要に応じて、クライアントが 2 番目のクラスのインスタンスを最初のクラスのインスタンスとして表示できるようにしながら、2 番目のクラスで好きな compareTo メソッドを自由に実装できます。
compareTo コントラクトを維持しながら、インスタンス化可能なクラスを新しい値コンポーネントで拡張できないのはなぜですか?を読みました。. それは私が持っていた1つまたは2つの質問に答えるのに役立ちました.しかし、以下の質問はまだ私には答えられていません.
1)2つのクラスを無関係として定義すると、compareToメソッドを自由に実装できます.同意します.しかし、どうすれば2つのクラスにis-a /親子関係を持たせることができますか.Joshuaが何であれ説明できますか「ビュー」メソッドと呼ばれる?