【发布时间】:2014-11-04 10:42:32
【问题描述】:
那么在下面的代码段中,为什么我们还要显式地强制转换“其他”类,即使它已经通过了 getClass() 结果的相等性测试。
public boolean equals(Object other) {
.
.
.
if (getClass() != other.getClass()) return false;
Person person = (Person)other;
.
.
.
}
【问题讨论】:
-
这样你就可以访问该类的成员了。
-
如果您将
Object视为Person而不进行显式转换,编译器会报错。例如,如果你使用other.firstName,你会失败,但假设 Person 类有该成员,使用person.firstName就可以了。