首頁>Club>
2
回覆列表
  • 1 # 東北振興

    介面是指定一組函式成員而不實現成員的引用型別,其他型別-類和結構可以實現介面。

    介面是對強型別的面向物件程式語言特有東西,如C#,Java,通俗地說它的出現就是對這些強型別語言定義一個標準的入口然後供後續子孫繼承使用。

    關注優就業,學習更多IT知識。

  • 2 # 呼呼哈小童鞋

    Java裡的介面編輯Java裡面由於不允許多重繼承,所以如果要實現多個類的功能,則可以透過實現多個介面來實現。Java介面和Java抽象類代表的就是抽象型別,就是我們需要提出的抽象層的具體表現。OOP面向物件的程式設計,如果要提高程式的複用率,增加程式的可維護性,可擴充套件性,就必須是面向介面的程式設計,面向抽象的程式設計,正確地使用介面、抽象類這些太有用的抽象型別做為java結構層次上的頂層。Java介面和Java抽象類有太多相似的地方,又有太多特別的地方,究竟在什麼地方,才是它們的最佳位置呢?把它們比較一下,你就可以發現了。1、Java介面和Java抽象類最大的一個區別,就在於Java抽象類可以提供某些方法的部分實現,而Java介面不可以,這大概就是Java抽象類唯一的優點吧,但這個優點非常有用。如果向一個抽象類里加入一個新的具體方法時,那麼它所有的子類都一下子都得到了這個新方法,而Java介面做不到這一點,如果向一個Java接口裡加入一個新方法,所有實現這個介面的類就無法成功透過編譯了,因為你必須讓每一個類都再實現這個方法才行,這顯然是Java介面的缺點。2、一個抽象類的實現只能由這個抽象類的子類給出,也就是說,這個實現處在抽象類所定義出的繼承的等級結構中,而由於Java語言的單繼承性,所以抽象類作為型別定義工具的效能大打折扣。在這一點上,Java介面的優勢就出來了,任何一個實現了一個Java介面所規定的方法的類都可以具有這個介面的型別,而一個類可以實現任意多個Java介面,從而這個類就有了多種型別。3、從第2點不難看出,Java介面是定義混合型別的理想工具,混合類表明一個類不僅僅具有某個主型別的行為,而且具有其他的次要行為。c#中的介面編輯C# 語言參考介面(C# 參考)定義:介面是一種約束形式,其中只包括成員定義,不包含成員實現的內容。目的:介面的主要目的是為不相關的類提供通用的處理服務,由於C#中只允許樹形結構中的單繼承,即一個類只能繼承一個父類,所以介面是讓一個類具有兩個以上基類的唯一方式。 [2] 宣告:介面宣告的方式與宣告類的方式相似,但使用的關鍵字是interface,而不是 class。介面只包含方法、屬性、索引器和事件的簽名。方法的實現是在實現介面的類中完成的,如下面的示例所示:1 12345678910111213141516171819202122 介面成員的定義:與類成員的定義相似,但是要注意:不允許使用訪問修飾符(public,private,protected 或 internal),所有的介面成員都必須是公共的;介面成員不能包含程式碼實體;介面成員不能定義欄位成員;介面成員不能用關鍵字static,virtual,abstrac t或 sealed 來定義;型別定義成員是禁止的。如果要隱藏繼承了基介面的成員,可以用關鍵字new來定義它們,例如:12345678 備註 :介面可以是名稱空間或類的成員,並且可以包含下列成員的簽名:方法屬性索引器事件一個介面可從一個或多個基介面繼承。當基型別列表包含基類和介面時,基類必須是列表中的第一項。實現介面的類可以顯式實現該介面的成員。顯式實現的成員不能透過類例項訪問,而只能透過介面例項訪問,例如:有關顯式介面實現的更多詳細資訊和程式碼示例,請參見顯式介面實現(C# 程式設計指南)。示例下面的示例演示了介面實現。在此例中,介面IPoint 包含屬性宣告,後者負責設定和獲取欄位的值。Point 類包含屬性實現。123456789101112131415161718192021222324252627282930313233343536373839404142434445 PHP中的介面編輯<?phpinterfacedemoInterface{public function doIt();//宣告方法}class hello implements demoInterface{public function doIt(){echo "實現介面中的方法";}}$demo=new hello();$demo->doIt();?>VB.NET介面編輯在VB.NET的類裡,實現一個介面的語句是:implements介面名稱例如,下面定義一個車(總稱)的介面,這裡的車是各種車的總稱:Public Interface ICarProperty color() As StringProperty speed() As LongSub PrintInfo()End Interface然後在不同型別的“車”類裡實現它:Public Class A_CarImplements ICarDim m_color As String, m_speed As LongPublic Property color() As String Implements ICar.colorGetReturn m_colorEnd GetSet(ByVal Value As String)m_color = ValueEnd SetEnd PropertyProtected Overrides Sub Finalize()MsgBox("I was deconstructed!")End SubPublic Sub New()m_color = "Red"m_speed = 210MsgBox("I was constructed!")End SubPublic Property speed() As Long Implements ICar.speedGetReturn m_speedEnd GetSet(ByVal Value As Long)m_speed = speedEnd SetEnd PropertyPublic Sub PrintInfo() Implements ICar.PrintInfoMsgBox("Color: " & m_color & vbNewLine & "Speed: " & m_speed, MsgBoxStyle.Information)End SubEnd Class在 Form 的 Load 事件中編寫:Dim myCar As New A_CarmyCar.PrintInfo()執行之後就建立了一個 A_Car 類的例項 myCar,然後出現兩個對話方塊,分別說明例項已經建立和汽車的資訊。當窗體解除安裝時,這個類的例項 myCar 將自動銷燬,這時將出現一個“I was deconstructed!”的對話方塊。宣告一個介面時,需要考慮以下幾點:1.介面主體只限於對方法,索引器以及屬性的宣告;2.介面成員是隱式公開的,如果對其顯式指定訪問級別,就會出現編譯器錯誤;3.介面中不能包含欄位,建構函式和常量等;4.在介面中不能實現任何方法,屬性或者索引器;5.在指定方法時,只需要給出返回型別,名稱和引數列表,然後分號結束。面向物件的介面編輯在C++中,一個類被允許繼承多個類。但是在Java以後的語言不被允許。這樣,如果想繼承多個類時便非常困難。所以開發方想出了新辦法:介面。一個介面內,允許包含變數、常量等一個類所包含的基本內容。但是,介面中的函式不允許設定程式碼,也就意味著不能把程式入口放到接口裡。由上可以理解到,介面是專門被繼承的。介面存在的意義也是被繼承。和C++裡的抽象類裡的純虛擬函式是相同的。不能被例項化。定義介面的關鍵字是interface,例如:publicinterfaceMyInterface{public void add(int x,int y);public void volume(int x,int y,int z);}繼承介面的關鍵字是implements,相當於繼承類的extends。需要注意的是,當繼承一個介面時,接口裡的所有函式必須全部被覆蓋。例如:class Demo implements MyInterface{public void add(int x,int y){System.out.println(" "+(x+y));}public void volume(int x,int y,int z){System.out.println(" "+(x*y*z));}public static void main(String args[]){Demo d=new Demo();d.add(10,20);d.volume(10,10,10);}}輸出結果:301000當想繼承多個類時,開發程式不允許,報錯。這樣就要用到介面。因為介面允許多重繼承(,),而類不允許。所以就要用到介面。

  • 中秋節和大豐收的關聯?
  • 網易的一元奪寶現在怎麼樣了?