【JAVA】介面(一)

來源:互聯網
上載者:User

標籤:

一、介面的概念

  介面是一種更徹底的抽象。介面是從多個相似類中抽象出來的規範,介面不提供任何實現,介面體現的是規範和實現分離的設計哲學。

二、介面的定義

  介面定義不再使用class關鍵字,而是使用interface關鍵字。

  以下是定義介面的基本文法:

  【修飾符】interface 介面名 extends 父介面1,父介面2...

  {

    //常量定義

    //抽象方法定義

  }

  • 修飾符只能是public 或者省略,省略的話就是包存取層級,即只有在同一個包下才能訪問此介面。
  • 一個介面可以有多個父類,但是只能繼承,不能實現介面。
  • 介面裡定義的是多個類共同的公用的行為規範,因此類中定義的Field、方法、內部類、枚舉類都是public存取權限。
  • 介面中的方法只能是抽象方法,由於abstract不能和static共同來修飾一個方法,所以介面中的所有方法總是public abstract來修飾的,可以預設不寫,預設會加上的。
  • 介面中定義的Field是介面相關的,而且只能是常量,所以介面中定義的Field都是public static final 修飾的,可以預設不寫,系統會預設加上。
  • 介面中不能定義構造器和初始化塊
  • 介面中可以定義內部類、枚舉類、介面,預設都是使用public static修飾,而且只能是public static 修飾。

  下面我們看一下介面定義的例子:

  

package interfaceDemo;public interface OutPut {    //介面中定義的Field只能是常量    int MAX_CACHE_LINE = 50;        //這句話和上面那句話是等價的    //public static final int MAX_CACHE_LINE = 50;        //介面中定義的方法只能是抽象的,沒有方法體    void out();        void getData(String msg);}

三、介面的繼承

  介面和類不一樣,它是支援多繼承的。多個父介面跟在extends關鍵字後面,以逗號隔開。和類繼承一樣,介面繼承一個父介面的時候,會獲得父介面中定義的所有的抽象方法以及常量。

  

public interface InterfaceA {    int A = 1;    void print();}public interface InterfaceB {    int B = 2;    void say();}public interface InterfaceC extends InterfaceA, InterfaceB{    int C = 3;        public static class Test    {        public static void main(String[] args) {            System.out.println(InterfaceC.A);            System.out.println(InterfaceC.B);            System.out.println(InterfaceC.C);        }    }}

  輸出結果為:

  1
  2
  3

【JAVA】介面(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.