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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁劲松 中级黑马   /  2014-1-17 11:27  /  1482 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名内部类)是否可以extends继承其它类,是否可以implements(实现)interface(接口)?

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

8 个回复

倒序浏览
匿名内部类在实现时必须借助一个类或者一个接口的,若从这个层次上讲它是可以继承其他类也可以实现接口的,但若通过extends或implements关键字那是不可能的。

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
匿名内部类其实就是一个匿名子类对象。如果你已经将此匿名子类对象定义好了,那么是没办法再继承其他的类或者实现其他的接口的。匿名内部类的格式:new 父类名&接口名(){ 定义子类成员或者覆盖父类方法 }.方法。

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
这个问题好犀利。

匿名类在运行的时候采用了多态机制。

匿名类运行时本来就是继承接口或者抽象类,并且来复写其父类的方法。
回复 使用道具 举报
1、匿名内部类说白了就是“内部类的简写格式”。
2、定义匿名内部类的前提:内部类必须是“继承一个类”或者“执行一个接口”,这样才可以创建匿名内部类。
3、匿名内部类格式:new “父类”或者是“接口”( ){ 定义子类的内容 }.方法
4、其实匿名内部类就是一个匿名的子类对象,而且这个对象有点胖,内容有点多,可以理解成带内容的对象。
5、注意:匿名内部类中定义的方法最好不要超过3个!
----------自己总结内容,请勿复制,也勿粘贴{:soso_e144:}---------

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
匿名内部类的这个内部类一定是一个子类,其中也不要忘了Object这个类的子类(有时候容易忽视)。
这个内部类用的是父类名,父类包括一般父类、接口、抽象类、Object等。
所以,匿名内部类是可以implements(实现)interface(接口)的。

评分

参与人数 1黑马币 +3 收起 理由
黄晓鑫 + 3 楼主是不可以通过关键字的 但是可以在里面.

查看全部评分

回复 使用道具 举报
和匿名函数 有着相似之处    可以互相比较   加深印象
回复 使用道具 举报
匿名内部类本身就是其他类的子类 而且没有名字 本身就继承了一个类 获取实现了一个接口 而且没有名字 不能实现其他接口 而且Java只支持单继承 所以也就无法再继承一个类 而Java支持多继承 你可以在匿名内部类中在定义一个内部类 去实现其他接口 Java支持多层继承 所以可以在继承一个类
回复 使用道具 举报
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马