假设有一个名为 Question 的类,我想重写其中的 equals 方法。我想让这两个对象相同,如果它们的属性“number”相同。
现在,如果我已经使用 if 条件检查“o”是否是 Question 的实例,为什么我必须进行类型转换“(Question)o”?
public boolean equals(Object o) {
if(o instanceof Question) {
return ((Question) o).number == number;
}
return false;
}
最佳答案
instanceof 运算符只是对对象 o
进行检查,看看它是否是 Question
的实例。它不会对 o
的状态或类型进行任何更改,因为我们已经将其指定为 Object
。
关于Java:方法重写和类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149947/