C#中的接口、抽象類、虛類、委托.doc_第1頁
C#中的接口、抽象類、虛類、委托.doc_第2頁
C#中的接口、抽象類、虛類、委托.doc_第3頁
C#中的接口、抽象類、虛類、委托.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Interface接口只包含方法、委托或事件的簽名。方法的實現(xiàn)是在實現(xiàn)接口的類中完成的,如下面的示例所示:interface ISampleInterface void SampleMethod();class ImplementationClass : ISampleInterface / Explicit interface member implementation: void ISampleInterface.SampleMethod() / Method implementation. static void Main() / Declare an interface instance. ISampleInterface obj = new ImplementationClass(); / Call the member. obj.SampleMethod(); 接口可以是命名空間或類的成員,并且可以包含下列成員的簽名: 方法 屬性 索引器 事件 一個接口可從一個或多個基接口繼承。當(dāng)基類型列表包含基類和接口時,基類必須是列表中的第一項。實現(xiàn)接口的類可以顯式實現(xiàn)該接口的成員。顯式實現(xiàn)的成員不能通過類實例訪問,而只能通過接口實例訪問,例如:有關(guān)顯式接口實現(xiàn)的更多詳細信息和代碼示例,請參見顯式接口實現(xiàn)(C# 編程指南)。下面的示例演示了接口實現(xiàn)。在此例中,接口 IPoint 包含屬性聲明,后者負責(zé)設(shè)置和獲取字段的值。Point 類包含屬性實現(xiàn)。/ keyword_interface_2.cs/ Interface implementationusing System;interface IPoint / Property signatures: int x get; set; int y get; set; class Point : IPoint / Fields: private int _x; private int _y; / Constructor: public Point(int x, int y) _x = x; _y = y; / Property implementation: public int x get return _x; set _x = value; public int y get return _y; set _y = value; class MainClass static void PrintPoint(IPoint p) Console.WriteLine(x=0, y=1, p.x, p.y); static void Main() Point p = new Point(2, 3); Console.Write(My Point: ); PrintPoint(p); 輸出My Point: x=2, y=3C#中抽象類和接口的區(qū)別?聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口。C#中抽象類和虛類的區(qū)別?虛方法的關(guān)鍵字是virtual抽象方法的關(guān)鍵字是abstract虛方法和抽象方法的區(qū)別:虛方法:可以在抽象類和非抽象類中定義,可以寫在父類中,在子類中可以被重寫,在定義虛方法時必須實現(xiàn)虛方法(在定義虛方法時需要寫實現(xiàn)方法的代碼或者至少要寫一個分號)抽象方法:必須定義在抽象類中,必須寫在父類中,在子類中必須被重寫,在定義抽象方法時不能實現(xiàn)方法(在定義抽象方法時不能有大括號和代碼)例如:人:普通人:輸出姓名(輸出信息要寫在人的類中)學(xué)生:輸出姓名、學(xué)號、年齡、愛好等家長:輸出姓名、聯(lián)系電話教師:輸出姓名、所授課程注:如果我們

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論