C#抽象類袜香,方法,以及接口

抽象類


?抽象類:

?在程序中使用關(guān)鍵字abstract


?如果說正常類是一個完整類,抽象類實際上是一個不完整的類

?抽象類的特點

?1.如果類中存在抽象方法乞封,那么該方法不能有實現(xiàn)部分做裙,該方法只能有聲名

?2.含有抽象方法的類一定是抽象類

?3.抽象類不一定含有抽象方法

?4.如果子類的父類為抽象類并且含有抽象方法,子類必須重寫父類的抽象方法并且實現(xiàn)

?5.virtual和abstract 不能使用private修飾符肃晚,要使用public

?6.virtual不能和abstract放在一起

?7.抽象類不能被實例化锚贱。

?8.抽象類可以包含靜態(tài)成員

?抽象類的作用:父類約束子類行為。



從前有一個類关串,它有好幾個愿望拧廊,但是它很窮,它沒錢買晋修,機緣巧合之下它有了一個兒子卦绣,兒子很有錢,實現(xiàn)了它的愿望

abstract class Poor//抽象類

{

public abstract void fangzi();//定義抽象方法

public abstract void chezi();

}

class Son:Poor//繼承抽象類飞蚓,實現(xiàn)抽象類中的所有抽象方法

{

public override void fangzi(){//重寫父類抽象方法 關(guān)鍵字override

Console.WriteLine ("買了房子");

}

public override void chezi(){

Console.WriteLine ("買了車子");

}

虛方法和抽象方法


?虛方法和抽象方法都可以供派生類進行重寫滤港。

?1.虛方法必須有實現(xiàn)部分,并且為派生類提供了重寫該方法的選項趴拧。

?2.抽象方法沒有實現(xiàn)部分溅漾,并且抽象方法的派生是一種強制性的,繼承抽象類必須重寫實現(xiàn)抽象方法。這與virtual不同

?3.抽象方法只能在抽象類中進行聲明著榴,抽象方法必須在派生類重寫添履。含有抽象方法的必然是抽象類,也就是說必須強制聲明為abstract脑又,?系統(tǒng)不會自動為我們添加暮胧。

?4.抽象方法必須在派生類重寫,這一點和interface(接口)類似问麸,虛方法不必這樣往衷。


?虛方法和抽象類的聯(lián)系:

?1.無論是虛方法或者是抽象方法,重寫必須用override關(guān)鍵字



接口:接口就是公共契約

?接口的關(guān)鍵字:interface

?接口和類屬于同級關(guān)系严卖,都屬于C#中的編程單位席舍。

?接口也被叫做純潔的抽象類


?接口的特點

?1.接口不能包含字段

?2.接口內(nèi)不能有修飾符

?3.接口中不能有方法體

?4.接口同樣不能直接實例化

?5.接口里面成員總是公共的

?6.接口中可以有屬性,但是不能有修飾符

?7.接口中可以有索引器/事件申明

?8.接口中聲明的方法哮笆,子類實現(xiàn)的時候雖然也用override關(guān)鍵字来颤,但是記住不屬于重寫汰扭,這里不能把override顯示的聲明出來。

?開發(fā)準則:盡量多用接口

?能用接口的不用抽象類福铅,能用抽象類不用虛方法


interface IInterface1//接口1

{

void name();//默認的訪問修飾符是public

void hello();

}

interface IInterface2//接口2

{

void name();

void hi();

}

class A:IInterface1,IInterface2//A類繼承兩個接口

{

public void hello()//需要public關(guān)鍵字萝毛,不需要加override關(guān)鍵字

{

Console.WriteLine ("hello");

}

public void hi()

{

Console.WriteLine ("hi");

}

void IInterface1.name()//因為兩個接口中都有name方法所以需要用 ? 接口名.方法名 來重寫接口中的方法,并且不能使用public關(guān)鍵字

{

Console.WriteLine ("接口一的方法");

}

void IInterface2.name()//因為兩個接口中都有name方法所以需要用? 接口名.方法名 來重寫接口中的方法滑黔,并且不能使用public關(guān)鍵字

{

Console.WriteLine ("接口二的方法");

}

}

class MainClass

{

public static void Main (string[] args)

{

A a = new A ();

((IInterface1)a).name ();//在調(diào)用name方法的時候需要將a對象強制轉(zhuǎn)換成接口

((IInterface2)a).name ();//在調(diào)用name方法的時候需要將a對象強制轉(zhuǎn)換成接口

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珊泳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拷沸,更是在濱河造成了極大的恐慌色查,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撞芍,死亡現(xiàn)場離奇詭異秧了,居然都是意外死亡,警方通過查閱死者的電腦和手機序无,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門验毡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帝嗡,你說我怎么就攤上這事晶通。” “怎么了哟玷?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵狮辽,是天一觀的道長。 經(jīng)常有香客問我巢寡,道長喉脖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任抑月,我火速辦了婚禮树叽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谦絮。我一直安慰自己题诵,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布层皱。 她就那樣靜靜地躺著性锭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奶甘。 梳的紋絲不亂的頭發(fā)上篷店,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天祭椰,我揣著相機與錄音臭家,去河邊找鬼疲陕。 笑死,一個胖子當著我的面吹牛钉赁,可吹牛的內(nèi)容都是我干的蹄殃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼你踩,長吁一口氣:“原來是場噩夢啊……” “哼诅岩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起带膜,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤吩谦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膝藕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體式廷,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年芭挽,在試婚紗的時候發(fā)現(xiàn)自己被綠了滑废。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡袜爪,死狀恐怖蠕趁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辛馆,我是刑警寧澤俺陋,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站昙篙,受9級特大地震影響倔韭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓢对,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一寿酌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硕蛹,春花似錦醇疼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至埃仪,卻和暖如春乙濒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工颁股, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留么库,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓甘有,卻偏偏與公主長得像诉儒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亏掀,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • LSP:里氏替換原則 * 原則上來講滤愕,子類對象可以賦給父類對象温算,也可以說子類替換父類,并且出現(xiàn)在父類能過出現(xiàn)的任何...
    Unity開發(fā)閱讀 1,175評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理间影,服務(wù)發(fā)現(xiàn)米者,斷路器,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法宇智,類相關(guān)的語法蔓搞,內(nèi)部類的語法,繼承相關(guān)的語法随橘,異常的語法喂分,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • 1. [C#語言基礎(chǔ)]請簡述拆箱和裝箱。 答: 裝箱操作: 值類型隱式轉(zhuǎn)換為object類型或由此值類型實現(xiàn)的任何...
    胤醚貔貅閱讀 4,800評論 1 29
  • 初裝體驗 ① 系統(tǒng)很順暢机蔗。開機時間和8.1差不多蒲祈,關(guān)機時也是先關(guān)閉屏幕,再靜默關(guān)機萝嘁。 ② 卡死現(xiàn)象梆掸。但發(fā)生概率極低...
    康查舒閱讀 554評論 1 2