一:封裝
封裝是實現面向對象程序設計的第一步。是面向對象方法的重要原則,就是把對象的屬性和行為(數據)結合為一個獨立的整體,並盡可能隱藏對象的內部實現細節,就是把不想告訴或者不該告訴別人的東西隱藏起來,把可以告訴別人的公開,別人只能用我提供的功能實現需求,而不知道是如何實現的。增加安全性。封裝提供了一個有效的途徑來保護數據不被意外的破壞。
二、 繼承:
繼承是OOP的一個方面,可以促進代碼重用。
1、C#中的繼承符合下列規則:
1.繼承是可傳遞的。如果C從B中派生,B又從A中派生,那么C不僅繼承了B中聲明的成員,同樣也繼承了A中的成員。Object類作為所有類的基類。
2.派生類應當是對基類的擴展。派生類可以添加新的成員,但不能除去已經繼承的成員的定義。
3.構造函數和析構函數不能被繼承。除此之外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。
4.派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這並不因為這派生類刪除了這些成員,只是不能再訪問這些成員。
5.類可以定義虛文法、虛屬性以及虛索引指示器,它的派生類能夠重載這些成員,從而實現類可以展示出多態性。
2、new關鍵字
如果父類中聲明了一個沒有friend修飾的protected或public方法,子類中也聲明了同名的方法。則用new可以隱藏父類中的方法。(不建議使用)
3、base關鍵字
base關鍵字用於從派生類中訪問基類的成員:
1.調用基類上已被其他方法重寫的方法。
2.指定創建派生類實例時應調用的基類構造函數。
C#還提供了另外一個關鍵字就是sealed,如果將類標記為sealed,那么編譯器就不會允許我們將這個類派生
三、多態
多態:同一操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果
編譯時的多態性:是通過重載來實現的。(重載是讓類以統一的方式處理不同類型數據的一種手段。在C#中,語法規定同一個類中兩個或兩個以上的方法可以用同一個名字,如果出現這種情況,那么該方法就被稱為重載方法.當一個重載方法被調用時,C#會根據調用該方法的參數自動調用具體的方法來執行.對於方法的使用者來講,這種技術是非常有用的。)對於非虛的成員來說,系統在編譯時,根據傳遞的參數、返回的類型等信息決定實現何種操作。 運行時的多態性:就是指直到系統運行時,才根據實際情況決定實現何種操作。C#中,運行時的多態性通過虛成員實現。 編譯時的多態性為我們提供了運行速度快的特點,而運行時的多態性則帶來了高度靈活和抽象的特點。
實現多態:
1.接口多態性。
2.繼承多態性。
3.通過抽象類實現的多態性。
3、override關鍵字:
重寫父類中的virtual修飾的方法,實現多態。
想深入了解多態點擊鏈接:https://www.cnblogs.com/ldyblogs/p/override.html