// interfaces/nesting/NestingInterfaces.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.// {java interfaces.nesting.NestingInterfaces}package interfaces.nesting;class A {interface B {void f();}public class BImp implements B {@Overridepublic void f() {}}private class BImp2 implements B {@Overridepublic void f() {}}public interface C {void f();}class CImp implements C {@Overridepublic void f() {}}private class CImp2 implements C {@Overridepublic void f() {}}private interface D {void f();}private class DImp implements D {@Overridepublic void f() {}}public class DImp2 implements D {@Overridepublic void f() {}}public D getD() { return new DImp2(); }private D dRef;public void receiveD(D d) {dRef = d;dRef.f();}}interface E {interface G {void f();}// Redundant "public":public interface H {void f();}void g();// Cannot be private within an interface://- private interface I {}}public class NestingInterfaces {public class BImp implements A.B {@Overridepublic void f() {}}class CImp implements A.C {@Overridepublic void f() {}}// Cannot implement a private interface except// within that interface's defining class://- class DImp implements A.D {//- public void f() {}//- }class EImp implements E {@Overridepublic void g() {}}class EGImp implements E.G {@Overridepublic void f() {}}class EImp2 implements E {@Overridepublic void g() {}class EG implements E.G {@Overridepublic void f() {}}}public static void main(String[] args) {A a = new A();// Can't access A.D://- A.D ad = a.getD();// Doesn't return anything but A.D://- A.DImp2 di2 = a.getD();// Cannot access a member of the interface://- a.getD().f();// Only another A can do anything with getD():A a2 = new A();a2.receiveD(a.getD());}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。