equals(Object o) メソッドは、o の型についてどんな仮定もするべきではありません。 o が this と同じ型でないなら単に false を返すべきです。
equals(Object o)
o
this