java嵌套接口

java嵌套接口

  

package object;

class A {
  //嵌套在類中的接口,能夠被private,protected,default和public四種權限修飾 interface B { void f(); } public class BImp implements B { public void f() {} } private class BImp2 implements B { public void f() {} } public interface C { void f(); } class CImp implements C { public void f() {} } private class CImp2 implements C { public void f() {} }
  //私有的嵌套接口,對外不可見,且只能被當前類中的其餘內部類所實現 private interface D { void f(); } private class DImp implements D { public void f() {} } public class DImp2 implements D { public 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(); } // 多餘的 "public",接口中全部的成員都是public,其中成員方法都是public abstract(能夠有個默認方法),屬性都是public static final,接口自己能夠是default和public public interface H { void f(); } void g(); // 不能聲明爲private,理由同上 //! private interface I {} } public class NestingInterfaces { public class BImp implements A.B { public void f() {} } class CImp implements A.C { public void f() {} } //不能實現一個私有接口,除非在接口所屬的類內部 //! class DImp implements A.D { //! public void f() {} //! } class EImp implements E { public void g() {} } class EGImp implements E.G { public void f() {} } class EImp2 implements E { public void g() {} class EG implements E.G { public void f() {} } } public static void main(String[] args) { A a = new A(); // 無權獲取 A.D: //! A.D ad = a.getD(); // A.D類型不能自動向下轉換爲實現類: //! A.DImp2 di2 = a.getD(); // 更不能調用私有接口的方法 //! a.getD().f(); // Only another A can do anything with getD(): A a2 = new A(); a2.receiveD(a.getD());//要使用D 只能把它交給有權使用它的對象 } } ///:~

 總結:java

  1. java中接口能夠嵌套在類中,也能夠嵌套在接口中,處於與成員變量和方法平級的位置;
  2. 不論定義在接口,仍是類中,嵌套接口默認強制是 static;
  3. 嵌套在類中的接口,能夠被private,protected,default和public四種權限修飾;嵌套在接口中的接口,只能被public修飾;編程

  4. 在實現接口的過程當中,咱們不須要實現嵌套在其內部的任何接口。而且private接口是不能在定義它的類以外被實現。

  參考:Java編程思想spa

相關文章
相關標籤/搜索