首頁  >  文章  >  Java  >  Java中介面定義的範例程式碼詳解

Java中介面定義的範例程式碼詳解

黄舟
黄舟原創
2017-03-25 10:38:471678瀏覽

這篇文章主要介紹了詳解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 1f4fb9e6e9d89272c90cdc4902e3ee4b [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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn