内置于A类声明的B类可以被InnerC访问吗?

解决方案 »

  1.   

    你这样做的确什么意义也没有,不过到不是不可以,下面是代码:class A{
        A(int a){
            System.out.println("constructing A ...");
        }
        public void a(int aa){
            System.out.println("A.a()");
        }
        class B{
            B(int b){
                System.out.println("constructing B ...");
            }
            public void b(int bb){
                System.out.println("B.b()");
            }
        }   
    }public class InnerC extends A.B{
        InnerC(A a,int k){//该构造函数应如何书写?
            a.super(k);
            System.out.println("construction InnerC ...");
        }
        public static void main(String[] args){
            A a=new A(9);
            InnerC ic=new InnerC(a,9);
        }
    }使用内部类的一个原因它有很好的安全机制,你这样做是强行打破了封装,搞不懂你有什么目的
    你的上面代码的错误在于无法构建A
      

  2.   

    InnerC(A a)
    {
        super(int值);
    }
    or
    InnerC(int k)
      

  3.   

    动态内部类的构造需要一个外部类的实例可以
    InnerC(A a, int i){
       a.super(i);
    }