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);	//定義一個用於計算周長的方法
}

注意:
與Java的類文件一樣,接口文件的文件名必須與接口名相同。

2.接口的實現

接口在定義後,就可以在類中實現該接口。在類中實現接口可以使用關鍵字implements,其基本格式如下:

[修飾符] class <類名> [extends 父類名] [implements 接口列表]{

}

修飾符:可選參數,用於指定類的訪問權限,可選值爲public、abstract和final。
類名:必選參數,用於指定類的名稱,類名必須是合法的Java標識符。一般情況下,要求首字母大寫。
extends 父類名:可選參數,用於指定要定義的類繼承於哪個父類。當使用extends關鍵字時,父類名爲必選參數。
implements 接口列表:可選參數,用於指定該類實現的是哪些接口。當使用implements關鍵字時,接口列表爲必選參數。當接口列表中存在多個接口名時,各個接口名之間使用逗號分隔。

在類中實現接口時,方法的名字、返回值類型、參數的個數及類型必須與接口中的完全一致,並且必須實現接口中的所有方法。

例如,編寫一個名稱爲Circle的類,該類實現定義的接口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));  
     }  
}

在類的繼承中,只能做單重繼承,而實現接口時,一次則可以實現多個接口,每個接口間使用逗號“,”分隔。

這時就可能出現常量或方法名衝突的情況,解決該問題時,
如果常量衝突,則需要明確指定常量的接口,這可以通過“接口名.常量”實現。

如果出現方法衝突時,則只要實現一個方法就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章