黑马程序员技术交流社区

标题: 关于匿名内部类的问题。。 [打印本页]

作者: 、zhi    时间: 2013-5-27 22:52
标题: 关于匿名内部类的问题。。
本帖最后由 、zhi 于 2013-5-29 21:19 编辑

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

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

作者: FantasticPie    时间: 2013-5-27 22:59
匿名内部类是否可继承其他类? [url]http://bbs.itheima.com/thread-45452-1-1.html [/url]可以参考这个
作者: 武志红    时间: 2013-5-27 23:09
本帖最后由 武志红 于 2013-5-27 23:21 编辑

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



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

多次调用:
匿名内部类不适合多次调用,定义的方法最好不包括三个。
作者: 、zhi    时间: 2013-5-27 23:40
最好不要发一些百度上的说法,最好能表达一下自己的想法。。
作者: 、zhi    时间: 2013-5-28 16:27
有没有人能说说自己的见解啊,不要百度上的说法,都是概念。。
作者: 、zhi    时间: 2013-6-4 09:04
好吧,经过舍友的指点,发现匿名内部类在实例化的过程中,默认继承了父类,因为一个类只能继承一个父类,所以,匿名内部类就不能再继承其它类了。。。
在回答问题的时候,自己懂的才回答,千万不要去百度一些无厘头的答案来回答。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2