黑马程序员技术交流社区

标题: 继承外部类的问题 [打印本页]

作者: Moriarty    时间: 2014-8-3 10:02
标题: 继承外部类的问题
当一个类继承了一个还有内部类的外部类,那么这个类会有外部类中的内部类吗?

作者: LFW    时间: 2014-8-3 10:29
子类能否访问到父类的内部类是关键,因为位于成员位置的内部类,可以看成是该外部类的成员,便可被private/protect/默认/public修饰,被private修饰的成员是不可被其子类访问的,也就不能被继承。而其他三个修饰符修饰的成员内部类是可以被继承的,但注意,被继承的子类内部类是不能被复写的。FuOut.In与ZiOut.In不可能同名因此不能复写。个人愚见,不对之处请坛友指出。
作者: 玥夜    时间: 2014-8-3 10:32
额额  这个问题居然没有考虑过。。。。
作者: Moriarty    时间: 2014-8-3 12:46
本帖最后由 Moriarty 于 2014-8-3 12:48 编辑
LFW 发表于 2014-8-3 10:29
子类能否访问到父类的内部类是关键,因为位于成员位置的内部类,可以看成是该外部类的成员,便可被private/ ...

那我想在一个继承了一个内部类的外部类创建这个内部类,但是这个给类中有一个与这个内部类相同名字的内部类怎么创建。我先问的是怎么在class C对象中创建继承class A中的class B对象。
class A
{
       class B
       {。。。}
}
class C entends A
{
       class B        {.........}
}

作者: fantacyleo    时间: 2014-8-3 13:09
Moriarty 发表于 2014-8-3 12:46
那我想在一个继承了一个内部类的外部类创建这个内部类,但是这个给类中有一个与这个内部类相同名字的内部 ...

类对成员的封装本身就提供了同名成员的隔离机制,一个是A.B,一个是C.B,不冲突。A.B a = new A.b();即可
作者: LFW    时间: 2014-8-3 13:16
Moriarty 发表于 2014-8-3 12:46
那我想在一个继承了一个内部类的外部类创建这个内部类,但是这个给类中有一个与这个内部类相同名字的内部 ...

哥们你的语文老师是体育老师教的吧。。。
class A
{
       class B
       {
                   public void in()
                        {
                        System.out.println("。。。");
                        }
           }
}
class C extends A
{
      
}
class InTest
{
        public static void main(String[] args)
        {
                C.B cb =new C().new B();
                cb.in();

        }
}》》》》这样编译运行的结果是打印  》。。。
作者: 张涛的狂怒    时间: 2014-8-3 13:23
静待解惑
作者: liubea    时间: 2014-8-3 14:26
来学习ing
作者: GoodBoy123    时间: 2014-8-3 23:18
这个还真没想过,感觉内部类加继承什么的,乱乱哒。。




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