-
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 【特點】
用關鍵字interface定義接口,通過關鍵字implements來實現接口;
實現多接口的類必須符合3個原則:能為所有的接口提供實現的功能,
能遵循重寫的所有規則,
能保持相同的返回的數據類型。
接口相當於程序開發的一組協議,需要此功能的類均可”繼承”該方法和集合。
接口中的屬性都是靜態常量,方法都是抽象方法(即沒有給出方法具體定義),一個類實現接口後,將繼承接口中的所有靜態常量。
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(); } }