C#面向對象多態虛函數、抽象類、接口的使用?

當我們學習完C#語法之後,最讓人糾結的應該是面向對象思維編程了.

而面向對象裡面,最讓人難理解的莫過於面向對象的第三特徵_多態了.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

工具/原料

Visual Studio

方法/步驟

首先,我們需要具備C#面向對象的語法. 封裝、繼承、多態.

如果你沒有學習過這些,那麼再往下看就沒有太大意義了.

面向對象的目的是為了解決軟件代碼量越來越大,大型軟件開發問題越來越突出,管理方便而設計的一種編程思維方法. 而面向對象中的多態更是把這一思想發揮到極致,讓程序機構更加清晰,方便管理,代碼複用率提高,包括日後拓展等. 如果我們只是寫個幾分鐘的小軟件,不考慮以後維護升級拓展等,其實壓根沒必要使用面向對象來分析糾結那麼多!

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

首先,我們要演示一下接口.

三種鴨子:

真鴨子會游泳

木頭鴨子不會游泳

橡皮鴨子會游泳

上面主要都是游泳,那麼主要體現在能力和行為上.能力一般都是接口來完成.我們如果要提取一個父類,但是無法解決游泳的函數,因為木頭鴨子不會.真鴨子需要被創建對象,真鴨子有意義會游泳. 虛方法也不合適,因為木鴨子不會游泳.那麼用接口是最合適的.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

我們來把上面的代碼實現一下,為了方便理解,我用了中文.

新建一個C# 控制檯程序就可以了.

如果你的visual studio 不支持中文,是因為版本太低了.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

運行一下我們看看會輸出什麼效果??

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

如果你能在幾個類中抽象出一個父類,而且必須父類中寫上這幾個子類共有的方法.然後你又不知道如何來寫這個方法.那麼就用抽象類.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

那我們再來寫一段代碼.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

最後一個就是虛方法了.

如果抽象出來的幾個類,這個方法可以在父類中實現,並且還需要創建父類的對象,那麼就用虛方法.

可以直接調用父類中的方法,如果認為父類中的方法不滿意,自己再重寫一次.

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

代碼如下

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

運行結果如下:

C#面向對象多態虛函數、抽象類、接口的使用

面向對象多態虛函數、抽象類、接口的使用#

注意事項

明白抽象,虛方法,接口的使用側重點的區別,在什麼場合下用哪個比較好.

需要在團隊開發中慢慢積累實際的經驗.

相關問題答案