物件導向 封裝性 繼承性 多型性總結

2021-10-19 09:54:06 字數 1176 閱讀 1023

二、繼承性

三、多型性

封裝性就是將物件內部的複雜性隱藏起來,只是對外部公開簡單的介面,便於外界呼叫,從而提高系統的可擴充套件性、可維護性。通俗的說,就是把該隱藏的隱藏起來,該暴露的暴露出來。

將類的屬性設為私有的(private),並提供set或者get方法。此時,針對屬性就體現了封裝性。

不對外暴露的私有方法

private < 預設 < protected < public

①、減少了**的冗餘,提高了**的復用性

②、便於功能的擴充套件

③、為多型性的使用提供了前提

①、一旦子類a繼承了父類b以後,子類a中就獲取了父類b中宣告的所有屬性和方法(特別的:父類中宣告為private的屬性或者方法,子類繼承父類以後,仍然認為子類繼承了父類中的私有結構,只是因為封裝性的影響,使得子類不能直接呼叫父類的私有結果。)

②、子類繼承父類以後,還可以宣告自己特有的屬性或者方法,用來實現功能的拓展。

③、格式:class a extends b

注意點:

①、乙個類可以被多個類繼承。

②、乙個類只能有乙個父類。

③、子類直接繼承的父類為:直接父類、 間接繼承的父類:間接父類(理解為爺爺類)。

乙個事物的多種形態

父類的引用指向子類的物件。

舉例:

person p =

newman()

;

這對man來說也叫做向上轉型

虛擬方法呼叫:有了物件的多型性之後,我們在編譯期,只能呼叫父類中宣告的方法,但是在執行期,我們實際執行的是子類重寫父類的方法。(多型對屬性不管用)

有了物件的多型性以後,記憶體中實際上是載入了子類特有的屬性和方法的,但是由於變數宣告為父類型別,導致編譯時,只能呼叫父類中宣告的屬性和方法。子類特有的屬性和方法不能呼叫。如何才能呼叫子類特的屬性和方法?使用向下轉型。

向下轉型後,就可以使用子類特有的方法和屬性了。

在向下轉型的過程中,有可能會出現 classcastexception 的異常,所以在轉型之前,使用 instanceof來對該類進行判斷。

舉例:

if

(a instanceofa)

物件導向 封裝 繼承 多型性

封裝 繼承與多型性是物件導向程式設計的三大原則。封裝 encapsulation 即隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀取和修改的訪問級別。class animal private void sleep int main 封裝animal類,其中包括乙個public 公有的...

C 類和物件特性(繼承性,封裝性,多型性)

基類 派生類定義及其基本定義 當建立乙個新的類時,可以指定它繼承已有的類的成員。這兩個類分別被稱為基類,派生類。繼承,就是將基類中public和protected中的成員,全部或分別,繼承到派生類中的private protected public中,單個或多個部分中 派生類可以從乙個或多個基類繼承...

C 的封裝性 繼承性和多型性概念

封裝 encapsulation 封裝就是將抽象得到的資料和行為 或功能 相結合,形成乙個有機的整體,也就是將資料與運算元據的源 進行有機的結合,形成 類 其中資料和函式都是類的成員。封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過 外部介面,一特定的訪問許可權來使用...