介面繼承

介面繼承

介面繼承是出自設計模式中的一個概念。介面繼承,又稱子類型化。描述了一個對象什麼時候能夠被用來替代另一個對象。

簡介


介面的基本概念
介面可以多繼承介面 因為介面只定義行為 並不包含類別的含義 不指代具體的某類事物 而且 從語義上來說 介面對介面的繼承稱之為擴展更為合適
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{}
繼承類 實現介面
這樣可以實現變相的多繼承。
一個類只能繼承另外一個類,但是它可以繼承多個介面,中間用“,”隔開。
所謂實現一個介面,就是指實現介面中的方法。
介面和介面之間可以定義繼承關係,並且介面之間允許實現多繼承。
例: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.
介面和多態都為JAVA技術的核心。
介面往往被我們定義成一類XX的東西。
介面實際上是定義一個規範、標準。
通過介面可以實現不同層次、不同體系對象的共同屬性;
通過介面實現write once as anywhere.
以JAVA資料庫連接為例子:JDBC制定標準;數據廠商實現標準;用戶使用標準。
介面通常用來屏蔽底層的差異。
因此介面也因為上述原因被用來保持架構的穩定性。