封裝對象的原理
繼承性
多態性
介面
- 封裝就是類的內部成員和實現隱藏起來
好處
Ø良好的封裝能夠減少耦合
Ø類內部的實現可以自由地修改
Ø類具有清晰的對外介面
資料隱藏
是封裝最有用的方式之一
實現方式:訪問限制修飾符
Øpublic 無限制,允許任何人來訪問
Øprotected internal = protected + internal
ØInternal 允許項目或程式內部的類來訪問
Øprotected 繼承時子類可以對基類有完全訪問權
Øprivate 只允許同一個類中的成員訪問
l屬性和索引器也用來封裝類的細節,並提供公用介面給該類的使用者
- 繼承性(inheritance)
一個類可以有能力直接從另一個類獲得其代碼和資料
l衍生類別從基類那裡獲得其所有的成員
lpublic class InsuranceAccount : Account
lC# 中只支援單繼承,多繼承可以通過介面實現同樣的功能
防止繼承
public sealed class XX
例:
GUI設計的Form look and feel
都是從.NET Form class
繼承下來的
l如果Class Child是繼承Class Parent而來
ØChild的對象中包含一個Parent的對象
如何訪問基類成員
- 衍生類別可以調用基類的方法
- 通過使用base關鍵字
- 衍生類別在訪問基類的時候有一定的限制,不能訪問 private 的成員;internal的基類成員只能被同一個程式集中的衍生類別訪問
多態
- 編譯時間的多態:重載(overload):用於同一類中
- 方法名必須相同
- 參數列表必須不相同
- 傳回值類型可以不相同
- 運行時的多態:覆寫虛成員實現(override),虛方法可以被覆寫;用於繼承關係的類中
- 方法名必須相同
- 參數列表必須相同
- 傳回值類型必須相同
介面
介面為類提供了藍圖,PM一級的人通常設計的時候會定義一系列的介面
用戶端需要一些介面,伺服器端來實現這些介面來滿足用戶端的需求,類似協議的功能
介面可以從多個基底介面派生
介面中所有方法必須是public的