黑马程序员技术交流社区
标题:
匿名内部类是不是要重写接口的所有抽象方法?
[打印本页]
作者:
暮雨微凉
时间:
2016-9-24 21:38
标题:
匿名内部类是不是要重写接口的所有抽象方法?
匿名内部类是不是要重写接口的所有抽象方法?拿这个怎么解释呢?
创建一个TreeSet集合:
TreeSet<Integer> ts = new TreeSet<Integer>(new Comparator<Integer>() {
public int compare(Integer s1,Integer s2) {
int num = s2 - s1;
return num > 0 ? 1 : num;
}
});
查API Comparator类里有两个抽象方法,却只重写了一个
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
求大神解释解释呗.....
作者:
pdog
时间:
2016-9-24 23:51
因为新建的匿名内部类里面 默认继承了Object的equals方法 。
看上去是没有重写,其实默认是有的
另外再想想,还有哪些方法也是可以从Object类继承的。以后看见就知道了
作者:
暮雨微凉
时间:
2016-9-25 00:35
pdog 发表于 2016-9-24 23:51
因为新建的匿名内部类里面 默认继承了Object的equals方法 。
看上去是没有重写,其实默认是有的
嗯嗯 谢谢层主,有点理解了
作者:
读书可以当饭吃
时间:
2016-9-25 11:00
匿名内部类继承Object,里面自带equals方法,相当于重写了接口里的equals方法,同理,如果一个类实现多个接口,这些接口里又有相同的方法的话,只用重写一次就行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2