毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

Object类里有了的方法,为什么在接口里还要定义抽象方法

更新时间:2012-12-20:  来源:毕业论文

Object类里有了的方法,为什么在接口里还要定义抽象方法
   今天看java.util.Comparator 这个接口,看到里面除了有个 int compare(T o1,T o2); 这个抽象方法外,还有 boolean equals(Object obj);这个抽象方法。
    我看到的代码,都没有实现这个抽象方法,(包括自己写代码,也没有实现),程序也不报错,是否说明这个方法在实现这个接口的类的父类(Object)已经实现了?
    假设是这样的话,那这个方法就不需要定义了,(因为接口都要由类实现,而所有的类都是Object的子类,那自然都继承了这个方法,当然可以重写。
    如果不是这样的话,那它的意义究竟是什么呢?
    可能说的不清楚,简单的说,既然Object类里有了的方法,为什么在接口里还要定义抽象方法?

方便要求实现类中实现方法的复写,定义自己指定的toString(),equals(),hashcode()方法。

   * Note that it is <i>always</i> safe <i>not</i> to override
     * <tt>Object.equals(Object)</tt>.  However, overriding this method may,
     * in some cases, improve performance by allowing programs to determine
     * that two distinct comparators impose the same order.

这是为了在你的代码中对这两个方法进行重写(当你需要这样做时)。
比如我们在Hibernate中采用复合主键类时

1.Object类并没有实现Comparator接口。
2.如果你在你的代码中使用compare方法,还是需要自己写的。
 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。