class AA { interface B { void f(); } public class BImp implements B { @Override public void f() { } } private class BImp2 implements B { @Override public void f() { } } public interface C { void f(); } class CImp implements C { @Override public void f() { } } private class CImp2 implements C { @Override public void f() { } } private interface D { void f(); } private class DImp implements D// 私有内部接口也可以被内部private类实现,但不能被外类实现 { @Override public void f() { } } public class DImp2 implements D// 私有内部接口也可以被内部public类实现 { public DImp2() { System.out.println("DImp2()"); } @Override public void f() { System.out.println("receive over"); } } public D getD() { return new DImp2();// ?????? } private D dRef; public void receive(D dRef) { this.dRef = dRef; this.dRef.f(); } } interface E { interface G { void f(); } public interface H { void f(); } void g();// 不能在接口中创建私有接口 } public class InterfaceDemo { public class BImp implements AA.B { @Override public void f() { } } class CImp implements AA.C { @Override public void f() { } } // cannot implements a private interface except within that interface‘s // defining class; // ! class DImp implements InterfaceDemo.D // ! { // ! @Override // ! public void f(){} // ! } class EImp implements E { @Override public void g() { } } class EGImp implements E.G { @Override public void f() { } } class EImp2 implements E { @Override public void g() { } class EG implements G { @Override public void f() { } } } /** * @param args */ public static void main(String[] args) { AA nes = new AA(); AA nes2 = new AA(); nes2.receive(nes.getD()); } }
原文:http://www.cnblogs.com/linlin-meimei/p/4359597.html