- java不大理解equals方法的重写,求助一个Name类有fi
- 一个Name类有firstName和lastName连个成员变量,该类重写的equals方法如下:
puic boolean equals(Object obj) {
if(obj instanceof Name) {
Name name = (Name)Obj; // A
return(firstName.equals(name.firstName))
&&(lastName.equals(name.lastName));
}
return super.equals(obj);
}
A句中传进来的o
- 不多余,obj instanceof Name 只是说明:obj 是Name 的一个实例,但是这个实例也可能是Name 子类的实例,这样obj instanceof Name 的返回值也是true ,所以为了程序的严密性,要把Obj强制转化为Name类,就象:B b=new b(); A a=(A)b;//B是A的子类。
因此Name name = (Name)Obj; 是防止obj 是Name的子类