C# 教程
繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)中最重要的概念之一。繼承允許我們根據(jù)一個(gè)類(lèi)來(lái)定義另一個(gè)類(lèi),這使得創(chuàng)建和維護(hù)應(yīng)用程序變得更容易。同時(shí)也有利于重用代碼和節(jié)省開(kāi)發(fā)時(shí)間。
當(dāng)創(chuàng)建一個(gè)類(lèi)時(shí),程序員不需要完全重新編寫(xiě)新的數(shù)據(jù)成員和成員函數(shù),只需要設(shè)計(jì)一個(gè)新的類(lèi),繼承了已有的類(lèi)的成員即可。這個(gè)已有的類(lèi)被稱為的基類(lèi),這個(gè)新的類(lèi)被稱為派生類(lèi)。
繼承的思想實(shí)現(xiàn)了 屬于(IS-A) 關(guān)系。例如,哺乳動(dòng)物 屬于(IS-A) 動(dòng)物,狗 屬于(IS-A) 哺乳動(dòng)物,因此狗 屬于(IS-A) 動(dòng)物。
一個(gè)類(lèi)可以派生自多個(gè)類(lèi)或接口,這意味著它可以從多個(gè)基類(lèi)或接口繼承數(shù)據(jù)和函數(shù)。
C# 中創(chuàng)建派生類(lèi)的語(yǔ)法如下:
假設(shè),有一個(gè)基類(lèi) Shape,它的派生類(lèi)是 Rectangle:
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
總面積: 35
派生類(lèi)繼承了基類(lèi)的成員變量和成員方法。因此父類(lèi)對(duì)象應(yīng)在子類(lèi)對(duì)象創(chuàng)建之前被創(chuàng)建。您可以在成員初始化列表中進(jìn)行父類(lèi)的初始化。
下面的程序演示了這點(diǎn):
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
長(zhǎng)度: 4.5 寬度: 7.5 面積: 33.75 成本: 2362.5
多重繼承指的是一個(gè)類(lèi)別可以同時(shí)從多于一個(gè)父類(lèi)繼承行為與特征的功能。與單一繼承相對(duì),單一繼承指一個(gè)類(lèi)別只可以繼承自一個(gè)父類(lèi)。
C# 不支持多重繼承。但是,您可以使用接口來(lái)實(shí)現(xiàn)多重繼承。下面的程序演示了這點(diǎn):
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
總面積: 35 油漆總成本: $2450