Interface接口

1、接口及做用函數

  接口是一個很是重要的概念,理解這個,先舉一個實現生活中的實例。
  如今,電腦主板,有不少插槽,可用來插CPU、內存等。當CPU等元件須要更新換代升級時,只要將CPU單獨更換就能夠了,而不須要更換主板。其實,主板上的這些暴露在外的插槽,就能夠理解爲接口。spa


  接口就是對外暴露的規則,只要符合規則的CPU、內存,不論品牌、型號、規格,均可以安插使用。code

  接口是程序的功能擴展。有了插槽,也就提升了主板的功能擴展性,好比內存不夠用了,咱們就能夠換成內容最大的內存條,或再加新的內存條。對象

  接口下降了耦合性。有了規則,主板和CPU等元件的就分開了,能夠分開生了。只要符合規則,元件就能夠插入插槽進行使用。這樣,主板廠商和CUP廠商之間的聯繫就少了。blog

 

2、接口的定義格式繼承

  class 用於定義類。
  interface用於定義接口。接口

  接口中常見的定義:常量、抽象方法內存

  常量:public static finalio

  方法:public abstract class

  接口中的成員都是public,並且這些修飾都是能夠省略的,只要是interface,系統就會自動補足。

 

3、接口的特色

  接口不能直接建立對象

  類與類之間是「繼承extends」。(由於父類中有非抽象內容,能夠直接拿過來用)

  類與接口之間是「實現implements」。(由於接口內的成員都是抽象的,子類要將父類中的成員全都實現後,纔可以使用)

  接口與接口之間是「繼承extends」。

  接口能夠被類多實現,即一個類能夠實現多個類。這是對JAVA不支持多繼承的一種轉換形式。

interface Inter {
    public static final int NUM = 3;

    public abstract void show();
}

class Test implements Inter // class是繼承(由於父類中有非抽象內容,能夠被子類調用)
                            // interface是實現(由於子類要全都將接口中的內容實例化後才能使用)
{
    public void show() {
    }
}

public class InterfaceDemo {

    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.NUM); // 對象能夠調用成員
        System.out.println(Test.NUM); // 類能夠調用成員。由於Test實現了Inter,至關於其中也有NUM
        System.out.println(Inter.NUM); // 接口能夠調用成員

    }

}

 

多現實

interface Inter {                    //第一個接口
    public static final int NUM = 3;

    public abstract void show();    
}

interface InterA {                    //第二個接口
    public abstract void method();
}

class Demo {
    public void myFunction() {
    }

}

// 類能夠繼承類同時實現多個接口,同時繼承類。
//由於接口中的方法沒有方法主休,因此能夠多實現,由子類任意定義。
class Test extends Demo implements Inter, InterA 
{
    public void show(){}    //複寫接口內的全部方法

    public void method(){}    //複寫接口內的全部方法
}
interface Inter {                    //第一個接口
    public static final int NUM = 3;

    public abstract void show();    
}

interface InterA {                    //第二個接口
    public abstract void show();
}

class Test extends Demo implements Inter, InterA 
{
    public void show(){}  //兩個接口內的方法同名時,實現多接口時只要複寫一次便可
}

 

接口之間是繼承

interface A {                    //A有一個方法
    void methodA();
}

interface B extends A {            //B有兩個方法
    void methodB();
}

interface C extends B {            //C有三個方法
    void methodC();
}

class D implements C{            //接口A繼承B,B函數C,類D實現接口C,D中要複寫3個方法
    public void methodA(){}
    public void methodB(){}
    public void methodC(){}
}
interface A {                    //A有一個方法
    void methodA();
}

interface B  {                  //B有一個方法
    void methodB();
}

interface C extends A、B {      //C有繼承A、B
    void methodC();
}        
相關文章
相關標籤/搜索