您好,登錄后才能下訂單哦!
本篇內容主要講解“C#接口與抽象類的定義”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#接口與抽象類的定義”吧!
抽象類不能實例化。抽象類的用途是提供多個派生類可共享的基類的公共定義,是對類進行抽象,可以有實現,也可以不實現。使用關鍵字abstract
進行定義。
可以看以,抽象類實際上是繼承了System.Object類,并且編譯器為它生成了一個默認的構造函數。
接口它是對一組方法簽名進行統一命名,是對一組行為規范的定義,使用關鍵字interface進行定義。
可以看到,接口實際上是把它當成抽象類來看待,但是沒有構造函數。無論是抽象類擁有構造函數,還是接口不擁有構造函數,它們都是不能被實例化的。
抽象類描述:
1)可以定義抽象方法,抽象方法沒有具體實現,僅僅是一個方法的契約,在子類中重寫該方法。抽象類可以重寫父類的虛方法為抽象方法。
2)可以定義非抽象方法,但要求該方法要有具體實現,如果該方法是虛方法,則在子類中可以重寫該方法。
3)可以定義字段、屬性、抽象屬性、事件及靜態成員。
抽象方法publicabstractintAdd(inta,intb);的IL:
編譯器把Add方法當作一個虛方法,在子類中可以被重寫。
虛方法protectedvirtualstringGetAddress(stringaddressID)的IL:
它本來就是一個虛方法,所以編譯器并沒有特殊對待它。
方法publicvoidAddRoot(Guidid,stringrootName)的IL:
接口描述:
1)可以定義屬性及索引器,但不能定義字段。
2)可以定義事件。
3)可以定義方法,僅僅是方法簽名的約定,不得有實現,在實現類中對該方法進行具體實現,有點類似于抽象類的抽象方法。
4)不可以定義虛方法。
5)不可以定義任何靜態成員。
6)接口成員默認是全開放的,不得有訪問修飾符。
到此,相信大家對“C#接口與抽象類的定義”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。