C# 理論學習 之 物件導向設計

來源:互聯網
上載者:User

封裝對象的原理

繼承性

多態性

介面

 

  1. 封裝就是類的內部成員和實現隱藏起來

好處

Ø良好的封裝能夠減少耦合

Ø類內部的實現可以自由地修改

Ø類具有清晰的對外介面

資料隱藏

是封裝最有用的方式之一

實現方式:訪問限制修飾符

Øpublic 無限制,允許任何人來訪問

Øprotected internal = protected + internal

ØInternal 允許項目或程式內部的類來訪問

Øprotected 繼承時子類可以對基類有完全訪問權

Øprivate 只允許同一個類中的成員訪問

l屬性和索引器也用來封裝類的細節,並提供公用介面給該類的使用者

  1. 繼承性(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的對象

如何訪問基類成員

  1. 衍生類別可以調用基類的方法
  2. 通過使用base關鍵字
  3. 衍生類別在訪問基類的時候有一定的限制,不能訪問 private 的成員;internal的基類成員只能被同一個程式集中的衍生類別訪問
  • 多態
                • 編譯時間的多態:重載(overload):用於同一類中
                                                          • 方法名必須相同
                                                          • 參數列表必須不相同
                                                          • 傳回值類型可以不相同
                                                  • 運行時的多態:覆寫虛成員實現(override),虛方法可以被覆寫;用於繼承關係的類中
                                                  • 方法名必須相同
                                                  • 參數列表必須相同
                                                  • 傳回值類型必須相同
  • 介面
  • 介面為類提供了藍圖,PM一級的人通常設計的時候會定義一系列的介面

    用戶端需要一些介面,伺服器端來實現這些介面來滿足用戶端的需求,類似協議的功能

    介面可以從多個基底介面派生

    介面中所有方法必須是public的

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.