這篇文章主要介紹了詳解Java中介面的定義與實例程式碼的相關資料,需要的朋友可以參考
Java中介面的定義詳解
1、定義介面
利用interface定義一個介面。介面定義同類的定義類似,也是分成介面的宣告和介面體,其中介面體由常數定義和方法定義兩部分組成。定義介面的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; }
修飾符:可選,用於指定介面的存取權限,可選值為public。如果省略則使用預設的存取權限。
介面名稱:必選參數,用來指定介面的名稱,介面名稱必須是合法的Java識別碼。一般情況下,要求首字母大寫。
extends 父介面名稱清單:選用參數,用於指定要定義的介面繼承於哪個父介面。使用extends關鍵字時,父介面名為必選參數。
方法:介面中的方法只有定義而沒有實作。
例如,定義一個用於計算的接口,在該接口中定義了一個常數PI和兩個方法,具體代碼如下:
public interface CalInterface { final float PI=3.14159f;//定义用于表示圆周率的常量PI float getArea(float r);//定义一个用于计算面积的方法getArea() float getCircumference(float r);//定义一个用于计算周长的方法getCircumference() }
注意:
與Java的類別檔案一樣,介面檔案的檔案名稱必須與介面名稱相同。
實作介面
介面定義後,就可以在類別中實作該介面。在類別中實作介面可以使用關鍵字implements,其基本格式如下:
[修飾符] class <類別名稱> [extends 父類別名稱] [implements 介面清單]{
}
修飾符:可選參數,用於指定類別的存取權限,可選值為public、abstract和final。
類別名稱:必選參數,用於指定類別的名稱,類別名稱必須是合法的Java識別碼。一般情況下,要求首字母大寫。
extends 父類別名稱:可選參數,用於指定要定義的類別繼承於哪個父類別。當使用extends關鍵字時,父類別名為必選參數。
implements 介面清單:可選參數,用於指定該類別實現的是哪些介面。當使用implements關鍵字時,介面清單為必選參數。當介面清單中存在多個介面名稱時,個別介面名稱之間會使用逗號分隔。
在類別中實作介面時,方法的名字、傳回值型態、參數的數量及型別必須與介面中的完全一致,且必須實作介面中的所有方法。例如,寫一個名稱為Cire的類,該類別實作5.7.1節中定義的介面Calculate,具體程式碼如下:
public class Cire implements CalInterface { public float getArea(float r) { float area=PI*r*r;//计算圆面积并赋值给变量area return area;//返回计算后的圆面积 } public float getCircumference(float r) { float circumference=2*PI*r; //计算圆周长并赋值给变量circumference return circumference; //返回计算后的圆周长 } public static void main(String[] args) { Cire c = new Cire(); float f = c.getArea(2.0f); System.out.println(Float.toString(f)); } }
在類別的繼承中,只能做單重繼承,而實作介面時,一次則可以實現多個接口,每個接口間使用逗號“,”分隔。這時就可能出現常數或方法名衝突的情況,解決該問題時,如果常量衝突,則需要明確指定常量的接口,這可以透過「接口名.常數」實現。如果出現方法衝突時,只要實作一個方法就可以了。以下透過一個具體的實例詳細介紹以上問題的解決方法。
以上是Java中介面定義的範例程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!