私はこの記事を読みました:Javaで平等メソッドを書く方法。
基本的に、継承をサポートするequals()メソッドのソリューションを提供します。
Point2D twoD = new Point2D(10, 20);
Point3D threeD = new Point3D(10, 20, 50);
twoD.equals(threeD); // true
threeD.equals(twoD); // true
しかし、それは良いアイデアですか?これらの2つのインスタンスは同じように見えますが、2つの異なるハッシュコードを持つ場合があります。それは少し間違っていませんか?
代わりにオペランドをキャストすることで、これがよりよく達成されると思います。
z
座標を持つものとして扱うことは、一部のアプリケーションにとって便利な慣習かもしれません(レガシーデータを処理する初期のCADシステムが思い浮かびます)。しかし、それはarbitrary意的な慣習です。3次元以上の空間内の平面は、任意の方向を持つことができます...興味深い問題を面白くするのはそれです。