c中的封裝 繼承 多型分別是什麼意思

時間 2021-05-02 22:15:19

1樓:可以叫我表哥

一、封裝:

封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中(我們稱之為類)。被封裝的物件通常被稱為抽象資料型別。

封裝的意義:

封裝的意義在於保護或者防止**(資料)被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它的函式意外的修改。

封裝提供了乙個有效的途徑來保護資料不被意外的破壞。相比我們將資料(用域來實現)在程式中定義為公用的(public)我們將它們(fields)定義為私有的(privat)在很多方面會更好。私有的資料可以用兩種方式來間接的控制。

第一種方法,我們使用傳統的存、取方法。第二種方法我們用屬性(property)。

使用屬性不僅可以控制訪問資料的合法性,同時也提供了「讀寫」、「唯讀」、「只寫」靈活的操作方法。

訪問修飾符:

private:只有類本身能訪問.

protected:類和派生類可以訪問.

internal:只有同乙個專案中的類可以訪問.

protected internal:是protected和internal的結合.

public:完全訪問.

二、繼承:

繼承主要實現重用**,節省開發時間。

1、c#中的繼承符合下列規則:

繼承是可傳遞的。如果c從b中派生,b又從a中派生,那麼c不僅繼承了b中宣告的成員,同樣也繼承了a中的成員。object類作為所有類的基類。

派生類應當是對基類的擴充套件。派生類可以新增新的成員,但不能除去已經繼承的成員的定義。

建構函式和析構函式不能被繼承。除此之外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。

派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這派生類刪除了這些成員,只是不能再訪問這些成員。

類可以定義虛文法、虛屬性以及虛索引指示器,它的派生類能夠過載這些成員,從而實現類可以展示出多型性。

2、new關鍵字

如果父類中宣告了乙個沒有friend修飾的protected或public方法,子類中也宣告了同名的方法。則用new可以隱藏父類中的方法。

3、base關鍵字

base 關鍵字用於從派生類中訪問基類的成員:

呼叫基類上已被其他方法重寫的方法。

指定建立派生類例項時應呼叫的基類建構函式。

三、多型

1、多型:同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。在執行時,可以通過指向基類的指標,來呼叫實現派生類中的方法。

編譯時的多型性:

編譯時的多型性是通過過載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的引數、返回的型別等資訊決定實現何種操作。

執行時的多型性:

執行時的多型性就是指直到系統執行時,才根據實際情況決定實現何種操作。c#中,執行時的多型性通過虛成員實現。

編譯時的多型性為我們提供了執行速度快的特點,而執行時的多型性則帶來了高度靈活和抽象的特點。

2、實現多型:

介面多型性。

繼承多型性。

通過抽象類實現的多型性。

3、override關鍵字:

重寫父類中的virtual修飾的方法,實現多型。

2樓:定復

封裝嗎···簡單說就是比如private修飾的那些,然後還可以用屬性來提供get和set,這東西一下說不清,也可以說是對外可見的程度吧·····

繼承,比如你父母生你,你身上有你父母的特點,也有你自己的特點,你繼承了你父母的特點這就是繼承,意思一樣,多型·······這個你要自己找東西理解了····

3樓:匿名使用者

和c#無關,多查查物件導向的資料吧。

4樓:可愛鬼蠱殘狼

分別代表這種東西的好壞

物件導向的三大特徵(封裝,繼承,多型)通俗一點怎麼理解c#結合

5樓:匿名使用者

實際上物件導向還有其他重要的特徵,國內的教材都只是說三大特徵。

封裝:1.指將資料和相應的函式放到一起形成乙個類的過程。相當於將操作結構體的函式放到結構體中。

2.指利用一切語言特徵將類的實現細節隱藏起來的過程。

繼承:就是在寫**的過程中,常常會發現某些現有類有些方面有很大相似性(比如實現類似的功能、擁有相同的函式等等),這時候我們建立另外乙個類(基類、父類)來描述這種相似性,所有派生自該基類的派生類都具備這種相似性。通過繼承,我們在乙個類(或者乙個類層次結構中)描述了不同類之間的相似性,因此減少了**的冗餘性,不然相同的概念要在不同地方重複。

多型:這個概念是與繼承密切相關的,是指同乙個成員函式在不同的派生類中有不同的行為(定義),也就是描述了相似中的差異。

物件導向的基本特徵封裝繼承多型,物件導向的三個基本特徵 封裝 繼承 多型

封裝 繼承 多型 主要是類。封裝也就是類的私有化。以下為c 比如class time 繼承就是保留父類的屬性,開擴新的東西。class land vehicle public time 這樣就繼承了父類time 多型多型性是允許將父物件設定成為和一個和多個它的子物件相等的技術,比如parent ch...

c 繼承後的記憶體分配問題,c 中給結構體分配動態記憶體的問題 用new嗎 怎麼用

柳生十連兵 不能訪問是不能直接通過派生類物件直接呼叫,但是可以通過派生類的成員函式呼叫基類的公有函式來訪問基類的私有屬性.難道編譯器會分配一塊記憶體放著不管造成記憶體洩漏? 墨夷欣笑 因為在派生類中通過可以定義新函式成員來訪問這些記憶體 間接訪問 比如呼叫基類派生下來的成員函式 所以這些記憶體是可以...

c 中關於私有繼承的問題,c 中乙個關於私有繼承的問題

在私有派生中,基類的所有成員在派生類中均為私有的。所以,在 派生類外不可以直接使用基類繼承過來的成員,而在派生類的 內部,對於基類繼承過來的成員,也只可直接使用其保護和公有 屬性的成員。以下改進僅供參考 include iostream.h class ca int readvalue class ...