これは非常に単純ですが、ここでかなり大きなものが欠けていることは明らかです。
Cat cat1 = new Cat("bob");
Cat cat2 = new Cat("bob");
System.out.println(cat1 == cat2);
//false since these references point to diferent objects
System.out.println(cat1.equals(cat2));
//returns false also??
Cat
名前だけの単純なクラスです。
ここで何が起こっているのか、どのように機能しequals()
ますか? オブジェクトのすべてのフィールドを比較したという印象を受けました。そうではないようです。
すべてのクラスでオーバーライドする必要がありますか?