共找到2條詞條名為interface的結果 展開
- interface
- 兩個硬體設備之間的連接方式
interface
interface
interface是面向對象編程語言中介面操作的關鍵字,功能是把所需成員組合起來,用來裝封一定功能的集合。它好比一個模板,在其中定義了對象必須實現的成員,通過類或結構來實現它。介面不能直接實例化,即ICount ic=new iCount() 是錯的。介面不能包含成員的任何代碼,只定義成員本身。介面成員的具體代碼由實現介面的類提供。介面使用interface關鍵字進行聲明。
介面是一種約束形式,其中只包括成員定義,不包含成員實現的內容。
聲明格式如下:
[attributes] [modifiers] interface identifier [: base-list] {interface-body} {;}
1、attributes(可選):附加的定義性信息。
2、modifiers(可選):允許使用的修飾符有 new 和四個訪問修飾符。分別是:new、public、protected、internal、 private。在一個介面定義中同一修飾符不允許出現多次,new 修飾符只能出現在嵌套介面中,表示覆蓋了繼承而來的同名成員。The public, protected, internal, and private 修飾符定義了對介面的訪問許可權。
3、指示器和事件。
4、identifier:介面名稱。
5、base-list(可選):包含一個或多個顯式基介面的列表,介面間由逗號分隔。
6、interface-body:對介面成員的定義。
7、介面可以是命名空間或類的成員,並且可以包含下列成員的簽名:方法、屬性、索引器。
8、一個介面可從一個或多個基介面繼承。
介面這個概念在C#和Java中非常相似。介面的關鍵詞是interface,一個介面可以擴展一個或者多個其他介面。按照慣例,介面的名字以大寫字母"I"開頭。
同一計算機不同功能層之間的通信規則稱為介面。
對協定進行定義的引用類型。其他類型實現介面,以保證它們支持某些操作。介面指定必須由類提供的成員或實現它的其他介面。與類相似,介面可以包含方法、屬性、索引器和事件作為成員。
介面中可以聲明屬性、方法、事件和類型(Structure),(但不能聲明變數),但是並不能設置這些成員的具體值,也就是說,只能定義,不能給它裡面定義的東西賦值。
l 【定義】Java中,能夠完成特定功能的,由若干屬性和方法組織成的,相對獨立的屬性和方法的集合。
l 【用途】實現類的多繼承,以解決Java只能單繼承,不支持多繼承的問題。
l 【特點】
用關鍵字interface定義介面,通過關鍵字implements來實現介面;
實現多介面的類必須符合3個原則:能為所有的介面提供實現的功能,
能遵循重寫的所有規則,
能保持相同的返回的數據類型。
介面的”繼承”與類之間的繼承不同,”繼承”該介面的類,需要”自力更生”,去實現介面中的抽象方法,因此介面也相當於一個特殊的抽象類。
介面相當於程序開發的一組協議,需要此功能的類均可”繼承”該方法和集合。
介面中的屬性都是靜態常量,方法都是抽象方法(即沒有給出方法具體定義),一個類實現介面后,將繼承介面中的所有靜態常量。
實現介面中的抽象方法時,方法頭必須與介面定義中的方法頭完全相同(包括訪問控制修飾符、返回值類型、參數列表等)(例外:可去掉關鍵abstract、介面定義時public可預設,但是實現時不可缺)
l 【範例】
定義介面格式:
[public]interface 介面名稱 [extends父介面名列表]
{
//靜態常量
[public] [static] [final] 數據類型變數名=常量值;
//抽象方法
[public] [abstract] [native] 返回值類型方法名(參數列表);
}
實現介面格式:
[修飾符] class 類名[extends 父類名] [implements 介面A,介面B,···]
{
類成員變數和成員方法;
為介面A中的所有方法編寫方法體,實現介面A;
為介面B中的所有方法編寫方法體,實現介面B;
}
實例:
本例定義介面AreaInterface,其中有靜態常量pai和求面積的抽象方法area()。類Circle和類Rectangle實現了AreaInterface介面,即為介面中的抽象方法area()編寫了滿足各自要求的方法體,分別求圓形和長方形的面積。
程序:AreaInterface.java
程序:Circle.java
程序:Rectangle.java