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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 、zhi 中级黑马   /  2013-5-27 22:52  /  1366 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 、zhi 于 2013-5-29 21:19 编辑

问:AnonymousInner Class (匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

        上面红色字体是我在资料看到的面试题,但是不明白为什么匿名内部类不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
        能举个例子说一下吗?或者说说自己的见解。。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

5 个回复

倒序浏览
回复 使用道具 举报
本帖最后由 武志红 于 2013-5-27 23:21 编辑

匿名内部类是没有名字的内部类,不能继承其它类,但一个内部类可以作为一个接口,由另一个内部类实现.
一、由于匿名内部类没有名字,所以它没有构造函数。因为没有构造函数,所以它必须完全借用父类的构造函数来实例化,换言之:匿名内部类完全把创建对象的任务交给了父类去完成。
二、在匿名内部类里创建新的方法没有太大意义,但它可以通过覆盖父类的方法达到神奇效果。
三、因为匿名内部类没有名字,所以无法进行向下的强制类型转换,持有对一个匿名内部类对象引用的变量类型一定是它的直接或间接父类类型。



1、匿名内部类,其实就是内部类的简写格式
2、定义匿名内部类的前提:内部类必须是继承一个类或实现接口
3、匿名内部类的格式: new 父类或者接口(){定义子类的内容}
其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖。可以理解为带内容的对象。

多次调用:
匿名内部类不适合多次调用,定义的方法最好不包括三个。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
最好不要发一些百度上的说法,最好能表达一下自己的想法。。
回复 使用道具 举报
有没有人能说说自己的见解啊,不要百度上的说法,都是概念。。
回复 使用道具 举报
好吧,经过舍友的指点,发现匿名内部类在实例化的过程中,默认继承了父类,因为一个类只能继承一个父类,所以,匿名内部类就不能再继承其它类了。。。
在回答问题的时候,自己懂的才回答,千万不要去百度一些无厘头的答案来回答。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马