物件導向的三大特性---封裝繼承多型
首先我們來建立乙個控制台程式
新建乙個父類person
建立乙個子類繼承父類person
子類:
main函式:
輸出結果:
根據結果顯示建立子物件,首先呼叫父類的建構函式在呼叫子類的建構函式。
繼承的傳遞性
例如:
a:b,b:c,則a:c
ⅰ.繼承過來之後被隱藏,有意隱藏加乙個關鍵字"new",如果加了關鍵字"new",就告訴子類,父類裡面的sayhi只能被隱藏,不能被覆寫
ⅱ.繼承過來之後被覆寫/重寫,覆寫需要在父類裡面加"virtual",加了"virtual"之後就告訴子類繼承之後,子類只能覆寫"override"
乙個子類和父類有相同的方法時,當運用子類的物件去呼叫該方法時,呼叫子類的方法,預設情況下,從父類的方法被隱藏掉,(有意隱藏,需要在子類的方法上加上new(可以加也可以不加))
如果想覆寫/重寫父類的方法,需要在父類裡面設定該方法為虛方法(virtual),然後子類通過override關鍵字去覆寫。
子類和父類有相同的方法,預設情況下(沒有被覆寫),該變數呼叫該方法時,呼叫的是父類的方法(就近原則);
當子類覆寫該方法時,變數呼叫的是子類的方法。
繼承的好處?
假設工廠要生產三孔的插座,它首先會把模型設計出來,模型裡面只是定義了方法,模型沒有寫方法的具體內容,把公共的方法抽象出來,做程式的時候先寫了乙個介面,
讓下面的類繼承這個介面,這個介面並不實現具體的內容,只是定義方法名,返回的型別,具體實現什麼效果是在子類裡面override,所以繼承的好處就是把公共的東西抽象出 來,減少了**的重複性。
ⅲ.多型 方法名相同,方法具體實現內容不同
1. 多型分為過載(overload)和覆寫(override)
過載:方法名相同,方法裡面的引數不同,引數的種類,個數或者順序不同。
2. 只有父類的虛方法(virtual)才能被子類覆寫,子類實現覆寫用關鍵字override,如果不加override就隱藏了父類的方法(需要加上關鍵字new,eg: public new static void chinese())
3. 靜態方法不能被覆寫,但可以被隱藏
4. 靜態類裡面只能有靜態成員
5. 靜態的成員不能帶override ,virtual ,abstract
物件導向三大特性 封裝 繼承 多型
封裝 封裝 是將類的某些資訊隱藏在類的內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問。存在乙個邊界,邊界之內的細節隱藏起來,只留下對外的藉口 如 筆記本,手機,飲水機 封裝的好處 只能通過規定方法訪問資料,安全 易用 簡單 易維護。隱藏類的實現細節 方便加入控制語句...
物件導向 三大特性(封裝 繼承 多型)
一 封裝 目的 保護類,讓類更加安全。做法 讓類裡面的成員變數變為私有 即訪問修飾符 的,做相應的方法或者屬性去間接的操作成員變數 訪問修飾符 private 私有的只能在該類中訪問 protected 受保護的只能在該類和它的子類中訪問 public 公有的在任何地方都可以訪問 封裝成員方法來間接...
物件導向三大特性 繼承 封裝 多型
繼承 即子類可以繼承父類的除了所有屬性 方法外的所有內容。子類繼承父類,只需要在類名後面加上 父類名 即可。如下 定義乙個父類,animals class animals pass 再定義乙個子類cat,繼承父類animals class cat animals pass 這樣cat類即可繼承父類的...