封裝,繼承,多型

2021-05-23 11:06:48 字數 1236 閱讀 5154

一、

1、封裝

該隱藏隱藏,該公開的公開

屬性隱藏,同時提供get/set方法

有些方法應該隱藏

方法宣告公開,實現隱藏。實現的改變對架構的影響最小

2、繼承

一般->特殊

單繼承:乙個類最多只能有乙個直接父類。類之間可以形成樹狀關係

根據訪問許可權,子類如果可以訪問父類的屬性和方法,就能繼承

private 私有  不能繼承

default 本類+同包  同包子類可以繼承,不同包子類不能繼承

protected 本類+同包+不同包子類  可以繼承

public 公開 可以繼承

方法的覆蓋(override):

方法名相同,參數列相同,返回值相同,訪問修飾符比父類相同或更寬,丟擲的異常不能比父類更寬

繼承關係下物件的構造過程

1)遞迴的構造父類物件

2)分配本類空間

3)初始化本類屬性

4)呼叫本類的構造方法

super:

super.  ->父類物件,訪問父類被覆蓋的方法或者父類被遮蓋的屬性

super() ->用在構造方法時,用來指明呼叫父類的哪個構造方法,放在構造方法的第一行,預設呼叫父類無參構造方法

3、多型

編譯時多型:方法的過載

執行時多型:

子類物件當作父類物件來用!!!遮蔽同一父類下,不同子類差異

animal a = new dog();

允許引用型別和物件型別不同,但要求引用型別是物件型別的父類。

物件型別代表了物件自身客觀的實際型別,引用型別代表了主觀上把物件當作什麼型別來看待。

引用型別:編譯時型別,主觀型別

物件型別:執行時型別,客觀型別

1)物件執行時型別不變

2)只能對物件呼叫其編譯時型別定義的方法

3)執行時根據物件型別去匹配物件型別中覆蓋之後的方法  

super s1;

sub s2;

s1=s2;

s2=s1; //error , s2=(sub)s2

強制型別轉換:當我們把父類的引用賦值給子類引用的時候,需要強制型別轉換。強制型別轉換失敗:型別轉換異常.

為了避免型別轉換異常,使用instanceof判斷

引用 instanceof 類名   引用指向的物件的型別與後面的類名是否相容

多型的作用:通用程式設計

我們可以把不同子類的物件都當作父類物件看待,評比不同子類的差異。

繼承 封裝 多型

一 封裝 封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中 我們稱之為類 被封裝的物件通常被稱為抽象資料型別。封裝的意義 封裝的意義在於保護或者防止 資料 被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它...

封裝 繼承 多型

一 封裝 封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中 我們稱之為類 被封裝的物件通常被稱為抽象資料型別。封裝的意義 封裝的意義在於保護或者防止 資料 被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它...

繼承 封裝 多型

一 封裝 封裝是實現物件導向程式設計的第一步,封裝就是將資料或函式等集合在乙個個的單元中 我們稱之為類 被封裝的物件通常被稱為抽象資料型別。封裝的意義 封裝的意義在於保護或者防止 資料 被我們無意中破壞。在物件導向程式設計中資料被看作是乙個中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它...