簡介
接口的基本概念
接口可以
多繼承接口 因為接口只定義行為 並不包含類別的含義 不指代具體的某類事物 而且 從語義上來說 接口對接口的繼承稱之為擴展更為合適
Java中的接口是一系列方法的聲明,是一些方法特徵的集合,一個接口只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
接口
接口的兩種含義:一,
Java接口,
Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做“Java接口”,後者叫做“接口”。
[訪問修飾符]interface 接口名
{
[訪問修飾符]欄位;
[訪問修飾符]方法;
}
例如:
public interface fruit{ //創建一個名為fruit的接口
String a="123"; //在接口中定義欄位
double PI=3.14;
float saleFruit(); //在方法中定義方法saleFruit()
float buyFruit();
}
public interface fruit1{ //創建一個名為fruit1的接口
float saleFruit(); //在方法中定義方法saleFruit1()
}
使用
class testInterface implements fruit,fruit1 {
public float buyFruit(){
//此處是方法的實現
return 0;
}
public float saleFruit(){
//此處是方法的實現
return 0;
}
public float saleFruit1(){
//此處是方法的實現
return 0;
}
public abstract class testInterface implements fruit{
public float buyFruit(){
return 0;
}
}
JAVA的核心概念:接口(interface)
接口與類屬於同一層次,實際上,接口是一種特殊的
抽象類。
如:
interface IA{
}
public interface:公開接口
與類相似,一個檔案只能有一個
public接口,且與檔案名稱相同。
在一個檔案中不可同時定義一個public接口和一個public類。
一個接口中,所有方法為公開、
抽象方法;所有的屬性都是公開、靜態、常量。
一個類實現一個接口的格式:
class IAImple implements IA{
};
類必須實現接口中的方法,否則其為一抽象類。
實現中接口和類相同。
接口中可不寫
public,但在子類中實現接口的過程中public不可省。
(如果剩去public則在編譯的時候提示出錯:對象無法從接口中實現方法。)
註:
一個類除繼承另外一個類,還可以實現接口;
class IAImpl extends java.util.Arrylist implement IA{}
繼承類 實現接口
這樣可以實現變相的
多繼承。
一個類只能繼承另外一個類,但是它可以繼承多個接口,中間用“,”隔開。
Implements IA,IB
所謂實現一個接口,就是指實現接口中的方法。
接口和接口之間可以定義繼承關係,並且接口之間允許實現多繼承。
例:interface IC extends IA,IB{};
接口也可以用於定義對象
IA I=new IAImpl();
實現的類從父類和接口繼承的都可做運行時類型。
IAImple extends A implement IA,IB
IB I=new IAImple();
I instance of IAImple;
I instance of A;
I instance of IA;
I instance of IB;
返回的結果均為
true.
接口往往被我們定義成一類XX的東西。
接口實際上是定義一個規範、標準。
通過接口可以實現不同層次、不同體系對象的共同屬性;
通過接口實現write once as anywhere.
以
JAVA資料庫連線為例子:
JDBC制定標準;數據廠商實現標準;用戶使用標準。
接口通常用來禁止底層的差異。
因此接口也因為上述原因被用來保持架構的穩定性。