public boolean equals(object obj){ 
     Name name=null; 
    if(obj instanceof Name){ 
      name=(Name)obj; 
      if(name.firstname==this.firstname&&name.lastname==this.lastname){ 
        return true; 
       }else return false; 
     } 
   return super.equals(obj) 

在这个方法中为什么最后要写上super.equals(obj),难道写return false不行吗,有点不理解! 
为什么还要让放到Object的equals里去比较?注:Name的父类是Object.

解决方案 »

  1.   

    个人觉得turn super.equals(obj)是多此一举,直接return false就可以了。
    因为super.equlas(obj)是判断两个对象的引用是否一致,如果一致,那么obj instanceof Name就返回true了,
    不会执行到最后一句。
      

  2.   

    赞同wenly0561010说的,不过纠正一点就是:super.equals(obj)可以被执行到的,不过总是返回false而已