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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柏涛 中级黑马   /  2014-2-21 19:28  /  2053 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是不是需要什么特殊处理,求问????

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

3 个回复

倒序浏览
内部内应该是可以被继承的,但是由于内部类有一个指向外围类对象的秘密引用,所以在继承内部类的时候,该秘密引用必须被初始化。解决方法是enclosingClassReference.super();。
代码如下:
class Outer
{
     class Inner
      {
       }
}
class AnoClass extends Outer.Inner
{
      AnoClass (Outer wi)
        {
              wi.super();
         }
}

并且刚才在百度上找了一下,两个不同的内部内也是可以一个继承另一个。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报 1 0
匿名的内部类不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。

内部类可以被继承,由于内部类有一个指向外围类对象的秘密引用,所以在继承内部类的时候,该秘密引用必须被初始化。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
内部类本身就是用于实现多继承,当然能被继承。像1楼所述的那样,在外部类中新建了个内部类,而后又新建了个类来继承外部类里的内部类。因为本人只是个初学者,也就只看懂这些,希望大家共同学习!

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马