C#多態(tài)的表現(xiàn)-方法重載,方法重寫以及密封類的特點

方法重載

方法重載:構造函數(shù)就屬于特殊的方法重載

?方法重載:是指同一個類中相同方法的不同行為

?方法重載的特點:

?1.方法名必須相同

?2.參數(shù)列表必須不相同(這里的不相同是指參數(shù)類型凭需,參數(shù)個數(shù)以及參數(shù)順序

?3.在有相同參數(shù)列表個數(shù)的前提下,函數(shù)方法返回值不作為判斷方法是否重載的依據(jù)


class Math

{

public? int sum(int a,int b)

{

return a + b;

}

public float sum(int a, float b)

{

return a + b;

}

public float sum(float a, float b)

{

return a + b;

}

public float sum(float a, int b)//不同參數(shù)類型的順序也可以作為方法重載的依據(jù)

{

return a + b;

}

}

在調(diào)用這些方法時肝匆,只要將參數(shù)寫成那種方法的參數(shù)列表就可以了



方法的重寫

?方法的重寫:是指在繼承關系中不同類之間的比較和研究

?第一個關鍵字:virtual(虛擬的)

?用virtual修飾的方法稱之為虛方法

?virtual一般情況下和override成對出現(xiàn)

?如果子類重寫了override粒蜈,則父類必須擁有virtual修飾的方法

?反過來則不一定成立,因為我們還有方法覆蓋


第二個關鍵字:override(重寫)

?為什么要使用方法重寫呢

?1.使用虛方法其實就是對目前的程序不滿意旗国,暫時方法功能是實現(xiàn)了的枯怖,但是不夠完美,希望后面的程序員通過重寫父類方法的方式能曾,進行功能上的優(yōu)化

?2.可以通過繼承系統(tǒng)提供的類度硝,去修改系統(tǒng)類中提供的虛方法


?方法重寫需要注意的地方

?1.不能重寫父類中有sealed修飾的方法

?2.不能重寫父類中用static修飾的方法

?3.如果父類中存在abstract方法,子類必須重寫



class Animal//動物類有一個行為(方法)就是叫

{

public virtual void jiao()//使用虛方法實現(xiàn)叫這個方法寿冕,但是這個方法不夠完美蕊程,需要子類去調(diào)用重寫

{

Console.WriteLine ("叫");

}

}

class Cat:Animal//子類繼承父類

{

public override void jiao()//子類重寫父類方法

{

Console.WriteLine ("貓叫");

}

}

class Laohu:Animal

{

public override void jiao()//子類重寫父類方法

{

Console.WriteLine ("老虎叫");

}

}

class Lion:Animal

{

public override void jiao()//子類重寫父類方法

{

Console.WriteLine ("獅子叫");

}

}

這就體現(xiàn)了面向?qū)ο笾卸鄳B(tài)。


密封類


?密封類:俗稱斷子絕孫類....

?如果我們的類是密封類驼唱,那么就意味著不能有任何派生類藻茂,但是密封類可以擁有父類

?C#中密封類用sealed關鍵字,sealed可以將類或者方法聲明為密封類或者密封方法玫恳,

?對于密封類來說捌治,不能繼承該密封類。

?對于密封類來說纽窟,不能重寫該密封方法

?密封類不能使用protected肖油,訪問修飾符

?密封類不能使用virtual

?密封類的不可繼承性,所以密封類不能聲明為抽象的臂港,即sealed關鍵字不能和abstract共同使用


?如果用sealed修飾方法森枪,必須要遵循一個條件:這個類要有父類视搏,并且重寫了父類的某一個虛方法才可以用sealed修飾,否則是絕對不行

密封類的作用就是防止外界修改到本類县袱,破壞類的內(nèi)部構造浑娜。


class A//創(chuàng)建父類A

{

public virtual void SayHi(){}//父類A中有虛方法

}

sealed class B:A//父類滿足有虛方法這個條件,可以用sealed修飾

{

public override void SayHi (){}//重寫了父類的虛方法

}

class C:A

{

public sealed override void SayHi (){}

}

class E:C

{

public override void SayHi (){}//這樣的寫法是錯誤的式散,因為在C類中這個方法是用sealed修飾的筋遭,是密封方法所以無法被重寫,編譯不能通過

}

class D:A//其他類繼承A這個父類與B這個密封類沒有關系

{

public override void SayHi(){}

}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末暴拄,一起剝皮案震驚了整個濱河市漓滔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乖篷,老刑警劉巖响驴,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異撕蔼,居然都是意外死亡豁鲤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門鲸沮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳骡,“玉大人,你說我怎么就攤上這事讼溺∪瞻荆” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵肾胯,是天一觀的道長竖席。 經(jīng)常有香客問我,道長敬肚,這世上最難降的妖魔是什么毕荐? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮艳馒,結果婚禮上憎亚,老公的妹妹穿的比我還像新娘。我一直安慰自己弄慰,他們只是感情好第美,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陆爽,像睡著了一般什往。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慌闭,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天别威,我揣著相機與錄音躯舔,去河邊找鬼。 笑死省古,一個胖子當著我的面吹牛粥庄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播豺妓,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼惜互,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了琳拭?” 一聲冷哼從身側響起训堆,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎臀栈,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挠乳,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡权薯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了睡扬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盟蚣。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卖怜,靈堂內(nèi)的尸體忽然破棺而出屎开,到底是詐尸還是另有隱情,我是刑警寧澤马靠,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布奄抽,位于F島的核電站,受9級特大地震影響甩鳄,放射性物質(zhì)發(fā)生泄漏逞度。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一妙啃、第九天 我趴在偏房一處隱蔽的房頂上張望档泽。 院中可真熱鬧,春花似錦揖赴、人聲如沸馆匿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渐北。三九已至,卻和暖如春铭拧,著一層夾襖步出監(jiān)牢的瞬間腔稀,已是汗流浹背盆昙。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留焊虏,地道東北人淡喜。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像诵闭,于是被迫代替她去往敵國和親炼团。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理疏尿,服務發(fā)現(xiàn)瘟芝,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法褥琐,類相關的語法锌俱,內(nèi)部類的語法,繼承相關的語法敌呈,異常的語法贸宏,線程的語...
    子非魚_t_閱讀 31,597評論 18 399
  • 1. [C#語言基礎]請簡述拆箱和裝箱。 答: 裝箱操作: 值類型隱式轉(zhuǎn)換為object類型或由此值類型實現(xiàn)的任何...
    胤醚貔貅閱讀 4,784評論 1 29
  • 陽光正好 何人在遠方
    J木習閱讀 142評論 0 0
  • 今天凌晨零點上淘寶買東西磕洪,七點起來去做飯吭练,中午也沒睡覺,真的感覺太困了~
    柳葉棒棒糖閱讀 194評論 1 1