ClassAでは、次の 2 つのクラスがあるとします。ClassB
ClassA伸びObjectてClassB伸びるClassAClassA引数コンストラクターがありませんClassB整数変数 x と、x を初期化する整数引数を持つコンストラクターを持つClassAequals継承していることをオーバーライドしませんObjectClassB整数 x が両方のオブジェクトで同じ値を持つ場合、 のequals2 つのオブジェクトが等しいと見なされるようにオーバーライドします。ClassB//In Class B you have this method: public boolean equals (Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } if (!super.equals(obj)) { return false; } B b = (B) obj; return this.x == b.x; }
主に、このコードを実行する場合
B b1 = new B(1);
B b2 = new B(1);
System.out.println(b1.equals(b2));
「false」が出力されると思いますが、その理由を理解しようとしています。オーバーライドの概念を完全には理解していないかもしれませんが、xフィールドが同じであることを確認できるように、メソッドBをオーバーライドする必要があると考えました。Object.equals
私が見逃している「間違っている」と思われるものは何ですか?