設計模式知識點

設計模式的學習臨近了尾聲,來總結一下學習過程中學到的一些知識。

設計模式更好的詮釋了面向對象的三大基本特徵:繼承、封裝、多態。

繼承

一、子類擁有父類非private的屬性和功能

二、子類具有自己屬性和功能,即子類可以擴展父類沒有的屬性和功能

三、子類還可以以自己的方式實現父類的功能(方法重寫)

子類從它的父類中繼承的成員有方法、域、屬性、時間、索引指示器。但對於構造方法,有一些特殊,他布恩那個被繼承,只能被調用,對於調用父類的成員,可以用base關鍵字。

優點:繼承使得所有子類公共的部分都放在了父類,使得代碼得到了共享,這樣就避免了重複;繼承還可使得修改或擴展繼承而來的實現都較爲容易。

缺點:父類變,子類不得不變,這顯然繼承使得子類與父類之間變成了一種強耦合關係。

當兩個類具備is-a的關係,就可以考慮用繼承。

封裝

定義:每個對象都包含它能進行操作所需要的所有信息。對象不必依賴其他對象來完成自己的操作。

優點:良好的封裝能夠減少耦合;類內部的實現可以自由修改;類具有清晰的對外接口。

多態

多態表示不同的對象可以執行相同的動作,但要通過他們自己的實現代碼來執行。

子類以父類的身份出現;子類在工作是以自己的方式來實現;子類以父類的身份出現時,子類特有的屬性和方法不可使用。

例:按下 F1 鍵這個動作,如果當前在 Flash 界面下彈出的就是 AS 3 的幫助文檔;如果當前在 Word 下彈出的就是 Word 幫助;在 Windows 下彈出的就是 Windows 幫助和支持。同一個事件發生在不同的對象上會產生不同的結果。

爲了使子類的實例完全接替來自父類的類成員,父類必須將該成員聲明爲虛擬的。這是通過在該成員的返回類型之前添加virtual關鍵字來實現。(virtual不能與private一起使用,抽象方法沒有方法體,且必須在抽象類中,抽象類無法實例化)

構造方法(構造函數)函數名與類名相同,是一個無函數返回值類型,什麼也不屑,也不可寫viod

重寫與重載的區別

重寫繼承父類返回值相同;

重載名稱相同,參數不同。

接口:定義了屬性、方法和事件。接口使用interface關鍵字聲明,通常接口命令以I字母開頭

區分形參與實參:

實參是指向數據的真正地址的變量參數

形參知識一個副本或者是地址的副本,形參是爲了讓傳遞進來的數據可以被使用纔有的(調用函數的時候傳遞的是實參,在函數內部的參數是形參)(形參是虛擬的,實參是給虛擬的賦值)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章