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的子类