1. 程式人生 > 實用技巧 >33-關鍵字:interface

33-關鍵字:interface

interface:介面


1.使用說明:
  * 1.介面使用interface來定義


  * 2.Java中,介面和類是並列的兩個結構


  * 3.如何定義介面:定義介面中的成員
    * 3.1 JDK7及以前:只能定義全域性常量和抽象方法
      * >全域性常量:public static final的.但是書寫時,可以省略不寫
      * >抽象方法:public abstract的方法,但是書寫時,可以省略不寫

    * 3.2 JDK8:除了定義全域性常量和抽象方法之外,還可以定義靜態方法、預設方法

  * 4. 介面中不能定義構造器的!意味著介面不可以例項化



  * 5. Java開發中,介面通過讓類去實現(implements)的方式來使用.
    * 如果實現類覆蓋了介面中的所抽象方法,則此實現類就可以例項化
    * 如果實現類沒覆蓋介面中所的抽象方法,則此實現類仍為一個抽象類

  * 6. Java類可以實現多個介面 --->彌補了Java單繼承性的侷限性
    * 格式:class AA extends BB implements CC,DD,EE

  * 7. 介面與介面之間可以繼承,而且可以多繼承

  * 8. 介面的具體使用,體現多型性

  *9. 介面,實際上可以看做是一種規範



2.舉例:

 1
class Computer{ 2 public void transferData(USB usb){//USB usb = new Flash(); 3 usb.start(); 4 System.out.println("具體傳輸資料的細節"); 5 usb.stop(); 6 } 7 } 8 9 interface USB{ 10 //常量:定義了長、寬、最大最小的傳輸速度等 11 void start(); 12 void stop(); 13 } 14 15 class Flash implements
USB{ 16 @Override 17 public void start() { 18 System.out.println("U盤開啟工作"); 19 } 20 21 @Override 22 public void stop() { 23 System.out.println("U盤結束工作"); 24 } 25 } 26 27 class Printer implements USB{ 28 @Override 29 public void start() { 30 System.out.println("印表機開啟工作"); 31 } 32 33 @Override 34 public void stop() { 35 System.out.println("印表機結束工作"); 36 } 37 }

體會:

  * 1.介面使用上也滿足多型性
  * 2.介面,實際上就是定義了一種規範
  * 3.開發中,體會面向介面程式設計!


3.體會面向介面程式設計的思想

  面向介面程式設計:我們在應用程式中,呼叫的結構都是JDBC中定義的介面,不會出現具體某一個資料庫廠商的API。

4.Java8中關於介面的新規範
//知識點1:介面中定義的靜態方法,只能通過介面來呼叫。

//知識點2:通過實現類的物件,可以呼叫介面中的預設方法。
      //如果實現類重寫了介面中的預設方法,呼叫時,仍然呼叫的是重寫以後的方法

//知識點3:如果子類(或實現類)繼承的父類和實現的介面中聲明瞭同名同參數的預設方法,那麼子類在沒重寫此方法的情況下,預設呼叫的是父類中的同名同參數的方法。-->類優先原則

//知識點4:如果實現類實現了多個介面,而這多個介面中定義了同名同參數的預設方法,
     //那麼在實現類沒重寫此方法的情況下,報錯。-->介面衝突。
     //這就需要我們必須在實現類中重寫此方法


//知識點5:如何在子類(或實現類)的方法中呼叫父類、介面中被重寫的方法

public void myMethod(){
  method3();//呼叫自己定義的重寫的方法
  super.method3();//呼叫的是父類中宣告的
  //呼叫介面中的預設方法
  CompareA.super.method3();
  CompareB.super.method3();
}

5.面試題:
抽象類和介面的異同?


相同點:不能例項化;都可以包含抽象方法的。


不同點:
  1)把抽象類和介面(java7,java8,java9)的定義、內部結構解釋說明
  2)類:單繼承性

   介面:多繼承

    類與介面:多實現