Java中介面的學習

誰一樣的你發表於2014-02-13

一.定義介面

二.使用介面

三.將介面作為型別使用

四.重寫介面

 

   1.在 Java 程式設計語言中,介面是一個引用型別,與類相似,所以可以在程式中定義並使用一個介面

型別的變數。

在介面中只能包含有常量、方法簽名和巢狀型別,它沒有構造器。在介面中宣告的方法,沒有方法

體。因為介面沒有構造器,所以它不能被例項化,它只能被類所實現或者被另外的介面所繼承。

   2.Java中可以使用關鍵字 class,interface,implements。對於interface

後跟介面的名稱。介面的名稱同樣要遵循 Java 識別符號命名規則。

   3.怎麼使用一個介面?

(1)介面是要被類來實現的。所謂介面的實現,實際上就是要實現介面中宣告的方法。

(2)在一個類的方法名後面,使用關鍵字implements,後跟介面名稱,用以指明該類所實現的介面。

(3)如果一個類實現一個介面,那麼它必須實現該介面中所有的方法。

   4.介面的繼承

介面支援多繼承

類只支援單繼承

 

   5.實現多個介面

一個類可以實現多個介面,這時需要在關鍵字implements後跟介面名稱列表。

在 Java 中規定,一個類雖然只能繼承自一個父類,但它可以實現多個介面。當實現多個介面時,物件可以同時具有多個型別:

 (1)自身所屬類的型別。

 (2)其所實現的所有介面的型別。

   6.介面的宣告

  (1)修飾符:可選,用於指定介面的訪問許可權,可選值為 public。如果省略,則使用預設的訪問權

限,既只能在當前的軟體包中使用。換句話說,宣告介面時,關鍵字 interface 前面要麼是修飾

符 public,要麼什麼都沒有,而不能使用 protected 或 private 關鍵字。

  (2)interface:必選,定義介面的關鍵字。

  (3)介面名稱:必選,用於指定介面的名稱。介面名必須是合法的 Java 識別符號。一般情況下,要求

介面名稱的首字母大寫。

  (4)extends  父介面名稱列表:可選,用於指定該介面繼承自哪個父口。當使用 extends 關鍵字時,父介面名稱為必選引數。介面可以是多繼承的,既一個介面可以有任意多個父介面。在介面的宣告中,包括有其所有父介面的一個列表,用逗號分隔。

   7.實現介面

     要宣告一個實現介面的類,需要在類的宣告中使用 implements 短語。一個類可以實現多個介面,所以 implements 關鍵字後面要跟一個被類實現的介面列表,用逗號分隔符分隔。

   8.實現多個介面的時的常量和方法衝突問題

     在 Java 中,每個類實現多個介面,每個介面使用逗號分隔符分隔。這時就有可能出現常量或方法名衝突的情況。

     例如,一個類實現兩個介面,兩個介面中都宣告瞭相同名稱的常量或相同名稱的方法,那麼在實現這兩個介面的類中,引用常量或實現方法時,就不明確是哪個介面中的。要解決這類衝突問題時,如果是常量衝突,則需要在類中使用全限定名(介面名稱.常量名稱)明確指定常量所屬的介面。如果是方法衝突,則只需要實現一個方法就可以了。

   9.將介面當作型別來使用

     當定義一個新的介面時,就是定義一個新的引用資料型別。凡是在任何能夠使用其他資料型別名稱的地方,也可以使用介面名稱。如同其他資料型別一樣,可以定義一個介面型別的引用變數。

     如果定義一個介面型別的引用變數,那麼,賦給這個變數的任何物件就必須是實現這個介面的類的一個例項。例如,在下面的示例方法中,用來在兩個物件中查詢最大的那個物件。

   10.介面的改寫

      一個介面被宣告以後,有可能因為某種原因,需要改變介面中宣告的方法(如增加新的方法、改變方法體的實現等)。

總的來說,定義介面需要使用關鍵字 interface,在類中實現介面需要使用關鍵implements。

當一個物件實現某個介面時,它既可以是自身類(或超類)的型別,也可以是一個該介面型別

相關文章