A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunny~ 中级黑马   /  2014-7-24 16:17  /  5168 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口里面有抽象方法,不是不能new对象吗?难道在匿名内部类中可以?

F~3}%XL703424YK8FP73$@S.jpg (124.34 KB, 下载次数: 50)

F~3}%XL703424YK8FP73$@S.jpg

15 个回复

倒序浏览
compareTo方法已经被你覆写了,当然可以创建对象了。
回复 使用道具 举报
那个匿名内部类就已经实现了Comparater接口,当然可以用来new对象。
回复 使用道具 举报
这是创建Comparater的实现类
回复 使用道具 举报
匿名内部类,他new的是这个接口的实现类,也叫子类,而这个接口的子类的类名是没有名字的,而且是在类的内部,所以就叫匿名内部类.
回复 使用道具 举报
Comparator!!!{:2_43:}
回复 使用道具 举报
柳超 中级黑马 2014-7-24 19:47:44
7#
亲  你new 的是一个匿名的内部类  而不是comparator !    你new comparator(){这里有内容}如果是new comparator() 这样就分号结束了
回复 使用道具 举报
柳超 中级黑马 2014-7-24 20:03:20
8#
comparator   这个接口只有两个方法  compare  和  equals    都不是抽象的方法
回复 使用道具 举报
席杰 中级黑马 2014-7-24 23:44:44
9#
楼主,通过你的提问,我感觉你还是对匿名内部类这块学的还是不太扎实。还需从新来一遍。
1、通过基础的学习,我感觉匿名内部类最大的作用就是可以方便对接口、抽象类的引用。所以每当在匿名内部类中new一个接口,你应该觉得是很正常的现象,应尝试接受它,我一开始也觉的这东西长的四不像,但是通过几次运用,我感觉这个匿名内部类确实很有用,方便许多问题的解决;
2、匿名内部类的格式:new 父类或(接口){定义子类的内容},这就为什么可以在匿名内部类中new抽象类,不是为什么,这是匿名内部类定义的格式。
3、comparator里的 compare 和 equals不是抽象方法,而是普通方法。但是你要注意,若comparator的compare与equals真是抽象方法,在定义匿名内部类时,必须的重写这两个方法,否则会编译不通过的。
若我上面的解释,你还不是很懂,那还是再看看《毕向东老师的javase基础教程》第9天的第3、4节课程吧。再看一遍就会恍然大悟。
祝楼主早日成功!:)
回复 使用道具 举报 2 0
席杰 发表于 2014-7-24 23:44
楼主,通过你的提问,我感觉你还是对匿名内部类这块学的还是不太扎实。还需从新来一遍。
1、通过基础的学习 ...

太棒了谢谢耐心解答
回复 使用道具 举报
sunny~ 发表于 2014-7-24 23:53
太棒了谢谢耐心解答

不客气,共同学习,我也是新手,继续努力!:)
回复 使用道具 举报
这里涉及为什么不可以建立接口或者抽象类,因为他们里面还有未实现的方法,Comparator接口只有一个方法,所以我们直接NEW并且将接口中的方法实现就相当于是COMPARATOR的一个子类了,你可以把这个匿名内部类看做是一个已经实现了该接口的一个子类,所以他NEW出来的其实是该类的子类对象,只不过他写成了匿名的一个内部类而已!
回复 使用道具 举报
这是匿名内部类的书写格式,毫无道理可讲。
回复 使用道具 举报
这个不是匿名内部累吗?匿名内部类还可以直接调用方法呢?
回复 使用道具 举报
签发 发表于 2014-7-25 07:40
这个不是匿名内部累吗?匿名内部类还可以直接调用方法呢?

匿名内部类还可以直接调用方法!(刚刚多打了个问号“?”)
回复 使用道具 举报
学习学习哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马