封裝繼承多態(tài)的理解 繼承與多態(tài)的關(guān)系?
繼承與多態(tài)的關(guān)系?多態(tài)性意味著父類的引用指向它自己的子類對(duì)象。但前提是類之間必須存在關(guān)系。繼承或?qū)崿F(xiàn)(或重寫)。多態(tài)中成員函數(shù)的特征:編譯時(shí):參考引用變量所屬的類中是否有被調(diào)用的方法。如果是這樣,編譯
繼承與多態(tài)的關(guān)系?
多態(tài)性意味著父類的引用指向它自己的子類對(duì)象。
但前提是類之間必須存在關(guān)系。繼承或?qū)崿F(xiàn)(或重寫)。
多態(tài)中成員函數(shù)的特征:編譯時(shí):參考引用變量所屬的類中是否有被調(diào)用的方法。如果是這樣,編譯就通過了。否則,編譯失敗。
運(yùn)行時(shí):參考對(duì)象類中是否有調(diào)用的方法。
簡(jiǎn)單的總結(jié)是:當(dāng)使用多態(tài)性調(diào)用成員函數(shù)時(shí),編譯器應(yīng)該看左邊,操作應(yīng)該看右邊。
但是,有一點(diǎn)需要特別注意,那就是
在多態(tài)性中,成員變量:
不管引用變量是編譯的還是運(yùn)行的,都引用左邊的(引用變量所屬的類)。
也就是說
Fu f=new Zi()系統(tǒng)輸出打印(f.age)
打印父類的值。
如果它是一個(gè)函數(shù),子類的值就會(huì)被打印出來
事實(shí)上,面向?qū)ο筮€有其他一些重要的特性,這些只是國(guó)內(nèi)教科書中提到的。封裝:
1。把數(shù)據(jù)和相應(yīng)的函數(shù)放在一起形成一個(gè)類的過程。它相當(dāng)于將在結(jié)構(gòu)上操作的函數(shù)放入結(jié)構(gòu)中。
2. 它是指通過使用所有語(yǔ)言特性來隱藏類的實(shí)現(xiàn)細(xì)節(jié)的過程。繼承:在編寫代碼的過程中,我們經(jīng)常會(huì)發(fā)現(xiàn)現(xiàn)有的一些類在某些方面有很大的相似性(比如實(shí)現(xiàn)相似的函數(shù),擁有相同的函數(shù)等等)。此時(shí),我們創(chuàng)建另一個(gè)類(基類、父類)來描述這種相似性。所有從基類派生的派生類都具有這種相似性。通過繼承來描述一個(gè)類(或一個(gè)類層次結(jié)構(gòu))中不同類之間的相似性,以減少代碼的冗余,否則同一概念會(huì)在不同的地方重復(fù)。多態(tài)性:這個(gè)概念與遺傳密切相關(guān)。這意味著同一成員函數(shù)在不同的派生類中有不同的行為(定義),即描述相似性的差異。
C#中,類對(duì)數(shù)據(jù)的封裝、繼承、多態(tài)理解性的描述?
多態(tài)性基于重寫。它是階級(jí)之間的關(guān)系。它發(fā)生在不同的類之間。子類重寫父類的方法。實(shí)現(xiàn)不同的子類,不同的實(shí)現(xiàn)形式。
多態(tài)有三個(gè)條件
1:繼承
2:重寫(重寫父類繼承的方法)
3:父類的引用指向子類的對(duì)象
重載是類內(nèi)方法配置的差異,發(fā)生在同一個(gè)類中。具有相同函數(shù)名和不同參數(shù)的多個(gè)方法可以實(shí)現(xiàn)相同類型的函數(shù)。
多態(tài)與重載的異同?
首先,我想說的是,封裝、繼承和多態(tài)性并不是針對(duì)C語(yǔ)言提出的。它們是在面向?qū)ο笏枷胂庐a(chǎn)生的一個(gè)概念。因此,如果你想理解封裝、繼承和多態(tài)性,你必須首先理解面向?qū)ο蟮母拍睢7庋b:當(dāng)我們談?wù)撁嫦驅(qū)ο髸r(shí),對(duì)象是如何產(chǎn)生的?它是通過我們的人工封裝。封裝是將一些特性或函數(shù)組合成一個(gè)抽象對(duì)象。以計(jì)算機(jī)為例:它的特點(diǎn)是有顯示屏、主機(jī)、鼠標(biāo)、鍵盤等。功能包括計(jì)算等。當(dāng)我們把這些特性和功能組合成抽象的術(shù)語(yǔ)“計(jì)算機(jī)”時(shí),“計(jì)算機(jī)”就具有這些特性和功能。但這臺(tái)“電腦”不是實(shí)物。它代表了所有被稱為“計(jì)算機(jī)”的真實(shí)物體的名稱。在C#中,我們稱封裝的抽象名詞類為類,因此我們稱“computer”為類,而物理計(jì)算機(jī)為此類的對(duì)象(或?qū)嵗?。繼承性和多態(tài)性是類的特征。繼承:這個(gè)詞可以用正常的意義來解釋。例如,你繼承了你父親的優(yōu)點(diǎn)。在c#中,類也可以被繼承(單繼承)。例如,我們有“計(jì)算機(jī)”一類?,F(xiàn)在我們定義了另一個(gè)類“聯(lián)想電腦”。我們想重新定義計(jì)算機(jī)的特性和功能嗎?是的,它可以,但一方面,代碼有點(diǎn)重復(fù),另一方面,它不方便管理和解釋聯(lián)想電腦的特點(diǎn)。因此,我們可以讓聯(lián)想電腦從“電腦”這一類繼承下來。我們稱“聯(lián)想電腦”為“電腦”的子類或派生類,“電腦”稱為父類或基類。這樣,只要“電腦”有東西,“聯(lián)想電腦”就有了,但“聯(lián)想電腦”也可以進(jìn)化(添加)出自己獨(dú)特的東西。因此,父類(基類)是子類(派生類)的子集。
封裝繼承多態(tài)到底講的是什么?
讓你的女兒?jiǎn)枂栕约?。家長(zhǎng)擔(dān)心有用嗎