国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

封裝、繼承、多態

2019-11-08 18:45:05
字體:
來源:轉載
供稿:網友

一、封裝:

  封裝是實現面向對象程序設計的第一步,封裝就是將數據或函數等集合在一個個的單元中(我們稱之為類)。被封裝的對象通常被稱為抽象數據類型。 

 封裝的意義:  封裝的意義在于保護或者防止代碼(數據)被我們無意中破壞。在面向對象程序設計中數據被看作是一個中心的元素并且和使用它的函數結合的很密切,從而保護它不被其它的函數意外的修改。

  封裝提供了一個有效的途徑來保護數據不被意外的破壞。相比我們將數據(用域來實現)在程序中定義為公用的(public)我們將它們(fields)定義為私有的(PRivat)在很多方面會更好。私有的數據可以用兩種方式來間接的控制。第一種方法,我們使用傳統的存、取方法。第二種方法我們用屬性(property)。

  使用屬性不僅可以控制存取數據的合法性,同時也提供了“讀寫”、“只讀”、“只寫”靈活的操作方法。

訪問修飾符:

Private:只有類本身能存取.Protected:類和派生類可以存取.Internal:只有同一個項目中的類可以存取.Protected Internal:是Protected和Internal的結合. Public:完全存取.

 二、繼承:

  繼承主要實現重用代碼,節省開發時間。

1、C#中的繼承符合下列規則:

繼承是可傳遞的。如果C從B中派生,B又從A中派生,那么C不僅繼承了B中聲明的成員,同樣也繼承了A中的成員。Object類作為所有類的基類。派生類應當是對基類的擴展。派生類可以添加新的成員,但不能除去已經繼承的成員的定義。構造函數和析構函數不能被繼承。除此之外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。但這并不因為這派生類刪除了這些成員,只是不能再訪問這些成員。類可以定義虛文法、虛屬性以及虛索引指示器,它的派生類能夠重載這些成員,從而實現類可以展示出多態性。

  2、new關鍵字

   如果父類中聲明了一個沒有friend修飾的protected或public方法,子類中也聲明了同名的方法。則用new可以隱藏父類中的方法。(不建議使用)

  3、base關鍵字

   base 關鍵字用于從派生類中訪問基類的成員:

調用基類上已被其他方法重寫的方法。指定創建派生類實例時應調用的基類構造函數。

三、多態

  1、多態:同一操作作用于不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。

  編譯時的多態性:  編譯時的多態性是通過重載來實現的。對于非虛的成員來說,系統在編譯時,根據傳遞的參數、返回的類型等信息決定實現何種操作。   運行時的多態性:  運行時的多態性就是指直到系統運行時,才根據實際情況決定實現何種操作。C#中,運行時的多態性通過虛成員實現。   編譯時的多態性為我們提供了運行速度快的特點,而運行時的多態性則帶來了高度靈活和抽象的特點。

   2、實現多態:

接口多態性。繼承多態性。通過抽象類實現的多態性。

  3、override關鍵字:

   重寫父類中的virtual修飾的方法,實現多態。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安国市| 嵊泗县| 曲麻莱县| 闸北区| 东源县| 开化县| 开远市| 衢州市| 富源县| 花莲县| 开封市| 鹤壁市| 吉安市| 鹿邑县| 渝北区| 临清市| 东宁县| 阿巴嘎旗| 尼木县| 遂川县| 林芝县| 长葛市| 嘉义市| 湖南省| 湘潭市| 龙州县| 称多县| 米林县| 武鸣县| 娱乐| 肥乡县| 阿拉善右旗| 中阳县| 潞西市| 桦川县| 濮阳市| 安阳市| 松滋市| 亳州市| 沙坪坝区| 同仁县|