内部类和内部接口

package 接口;

import 接口.A.AAA.BBB;
import 接口.A.AAA.BBB.CCC;

public class A {
    public static void main(String[] args) {
        A A = new A();              //实例化A的对象为AAA的外层访问实例
        AAA AAA = A.new AAA();      //实例化AAA的对象为BBB的外层访问实例
        BBB BBB = new A().new AAA().new BBB();//实例化BBB的对象为CCC的外层访问实例
        CCC CCC = new A().new AAA().new BBB().new CCC();//通过外层访问实例BBB访问内部成员CCC并将其实例化 
        AAA.X();
        BBB.Y();
        CCC.Z();
        X BB = AAA.new BBB();
        X.Y BA = AAA.new BBB();
        X CA = new A().new AAA().new BBB().new CCC();
        X.Y CB = new A().new AAA().new BBB().new CCC();
        X.Y.Z CC = new A().new AAA().new BBB().new CCC();

    }

    public class AAA implements X {
        @Override
        public void X() {
            System.out.println("x");
        }

        public class BBB implements Y {
            @Override
            public void X() {
                System.out.println("x");
            }

            @Override
            public void Y() {
                System.out.println("y");
            }

            public class CCC implements Z {

                @Override
                public void Y() {
                    System.out.println("y");
                }

                @Override
                public void X() {
                    System.out.println("x");
                }

                @Override
                public void Z() {
                    System.out.println("z");
                }
            }
        }
    }
}

interface X {

    void X();

    interface Y extends X {

        void Y();

        interface Z extends Y {

            void Z();
        }
    }
}

内外之分

内部类和内部接口_第1张图片
内部类和内部接口_第2张图片
内部类和内部接口_第3张图片

你可能感兴趣的:(内部类和内部接口)