知道要是实现某接口,就必须实现其全部方法,但今天偶然我发现,只实现了Comparator接口里的一个方法,竟然能够运行!!!不知道是怎么回事儿,难道是特例???
class SingleComp implements Comparator<Object>{
public int compare(Object o1,Object o2)
{
String s1=String.valueOf(o1);
String s2=String.valueOf(o2);
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
}

备注:这个接口里有两个方法,如Java文档里所示:
java.util 
Interface Comparator<T>Method Summary 
 int compare(T o1, T o2)           Compares its two arguments for order. 
 boolean equals(Object obj) 
          Indicates whether some other object is "equal to" this comparator. 

解决方案 »

  1.   

    其实,你可以打开Comparator类的源码看看
      

  2.   

    擦,被误解了
    class A implements Comparator{
    }这个A不就从Object带了equals实现来了么
      

  3.   

    哦~~相当于是实现了Comparator里的equals方法了
      

  4.   


    Object 的equals 所有的类默认都继承Object类
      

  5.   

    对啊,继承了Object类中的equals方法啊。所以就不用去写了。
      

  6.   

    是否Comparator有个equals方法,我没有考证,但即便如此,
    equals方法已经有人跟你实现了,就是Object.
    你的这个类继承了Object(所有的类Object的子类),自然就实现了equals方法。
      

  7.   

    继承了Object类中的equals方法所以感觉没有实现所有的方法。哈哈,应该重写一下equels方法。