黑马程序员技术交流社区
标题:
求高手解答 关于匿名内部类能否继承与被继承的问题?
[打印本页]
作者:
朝花夕拾
时间:
2012-12-6 21:27
标题:
求高手解答 关于匿名内部类能否继承与被继承的问题?
本帖最后由 张雄 于 2012-12-11 22:05 编辑
我想问下,除了Object类匿名内部类能否继承其他的类,为什么?匿名内部类能否被继承?为什么?求详细解释!!!
作者:
Chaiber
时间:
2012-12-6 21:44
本帖最后由 Chaiber 于 2012-12-6 21:48 编辑
我不是高手,我就说说我的看法。
首先,定义匿名内部类的前提就是,必须继承一个类或者实现一个接口。在老师的视频当中就是继承的一个非Object的类。
匿名内部类的格式:new 父类或者接口(){定义子类的内容}
其次,匿名内部类本身就没有名字,是为了方便使用,我认为是不能被继承的,一个连名字都没有的类,如何去建立对象去使用呢?
作者:
刘菲
时间:
2012-12-6 22:40
1.匿名内部类除了可以继承Object外,可以继承其他类的。
2.创建匿名内部类的条件就是,这个匿名内部类必须是某个类的子类,或实现某个接口,
这样才能用其父类的名字以多态的形式创建这个匿名内部类。
3.匿名内部类没有名字是不能直接被其他类继承的。
4.以上是我的理解,希望可以帮到楼主。
作者:
张其辉
时间:
2012-12-7 00:16
例如:
class Outer{
class Inner{}
}
public class In extends Outer.Inner{
In(Outer o)
{
o.super();
}
public static void main(String[] args)
{
Outer o=new Outer();
In in=new In(o);
}
}这i个问题一直没去查过,但是也总感觉有点不明白,上面是我看书找的例子,把书上的分析写上来,共同学习吧:
In只是继承了内部类Inner并不是继承了Outer,但是当要生成一个构造器时,默认的构造器不算好,而且不能只是传递一个指向外部类对象的引用,此外,必须在构造器
内使用如下语法:enclosingClassReference.super();这样才提供了必要的引用,然后程序才能编译通过
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2