複製鏈接
請複製以下鏈接發送給好友

interface

(面向對象編程語言中接口操作的關鍵字)

鎖定
interface是面向對象編程語言中接口操作的關鍵字,功能是把所需成員組合起來,用來封裝一定功能的集合。它好比一個模板,在其中定義了對象必須實現的成員,通過類或結構來實現它。接口不能直接實例化,即ICount ic=new iCount()是錯的。接口不能包含成員的任何代碼,只定義成員本身。接口成員的具體代碼由實現接口的類提供。接口使用interface關鍵字進行聲明。
中文名
接口
外文名
interface
面    向
對象編程語言中接口操作
類    型
關鍵字
功    能
把所需成員組合起來
注意點1
接口不能直接實例化
注意點2
接口不能包含成員的任何代碼

interface關鍵字

interface接口定義

接口是一種約束形式,其中只包括成員定義,不包含成員實現的內容。
聲明格式如下:
[attributes] [modifiers] interface identifier [: base-list] {interface-body} {;}

interface使用説明

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"開頭。

interface接口

同一計算機不同功能層之間的通信規則稱為接口。
對協定進行定義的引用類型。其他類型實現接口,以保證它們支持某些操作。接口指定必須由類提供的成員或實現它的其他接口。與類相似,接口可以包含方法、屬性、索引器和事件作為成員。
接口中可以聲明屬性、方法、事件和類型(Structure),(但不能聲明變量),但是並不能設置這些成員的具體值,也就是説,只能定義,不能給它裏面定義的東西賦值。

interfaceJava接口

l 【定義】Java中,能夠完成特定功能的,由若干屬性和方法組織成的,相對獨立的屬性和方法的集合。
l 【用途】實現類的多繼承,以解決Java只能單繼承,不支持多繼承的問題。
l 【特點】
用關鍵字interface定義接口,通過關鍵字implements來實現接口;
接口中的成員變量具有公共性(public)、靜態性(static)和最終性(final)。所以修飾符只能是public,因此只能定義常量
實現多接口的類必須符合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
package jiekou;
public interface AreaInterface{
double pai=Math.PI;
double area();
}
程序:Circle.java
package jiekou;
public class Circle implements AreaInterface{
double r;
public Circle(doublex){
r=x;
}

//實現接口中的抽象方法,求圓面積
public double area(){
return pai*r*r;
}
public String toString(){
return"圓:r="+r+"\tarea="+area();
}
}
程序:Rectangle.java
package jiekou;
public class Rectangle implements AreaInterface{
doublex,y;
public Rectangle(doublea,doubleb){
x=a;
y=b;
}
public doublearea()//實現接口中的抽象方法,求長方形面積
{
return x*y;
}
public String toString()
{
return "長方形:x="+x+";y="+y+"\t
area=+area();
}
}