Qt圖形界面編程入門(5)

三,繼承和多態

· 繼承是定義新類的一種機制,使用這種機制創建新類時只需要聲明新類和已創建類之間的差別

· 對應一個繼承關系,創建的新類稱為子類,被繼承的類稱為父類或基類。子類可以使用父類定義的屬性和方法,也可以自定義新的屬性和方法。

·? 父類的特征不會受到子類的影響

· 多態性是指在類的對象在接受同樣的消息時,所做出的響應不同。

·? 因為“接受同樣的消息”,所以這些對象將調用名稱相同的成員函數;

·? “所做出的響應不同”指函數實現的功能不同。

例如。當我軍向未知部隊發出信息,友軍將回答接頭暗號,而敵軍回答錯誤信息。同樣是對信息的響應,由于反映對象不同,響應方法的內容也不同。

繼承

派生類的定義格式為:

class 派生類:繼承方式 基類1,.... ,繼承方式 基類n

{

?????? 派生類增加的成員聲明;

}

繼承有三種方式:即公有繼承,私有繼承,保護繼承

不同的繼承方式下,派生類對象對基類成員訪問控制權限不同

公有繼承方式(public方式)

創建的派生類對基類成員訪問權限如下:

基類公有成員轉化為派生類的公有成員,派生類自身的成員函數可直接訪問從基類繼承的公有成員。

基類保護成員轉化為派生類的保護成員,派生類自身的成員函數可以直接訪問從基類繼承的保護成員。

基類的私有成員成為派生類中更加封閉的私有成員,即使派生類的方法也無法直接訪問。派生類的函數必須通過基類公有成員或保護成員函數間接訪問從基類繼承的私有成員。

在派生類之外,可以通過派生類對象直接訪問從基類繼承的公有成員。

公有繼承示例:

派生類--經聲明,就繼承了基類除構造函數和析構函數以外的所有成員,實現了代碼重用。

派生類在繼承基類成員的基礎上,一般都會有所變化。這些變化主要體現在兩個方面:

(1)派生類對基類的擴充

增加新的成員是派生類對基類的擴充方式。這里派生類Employee繼承Person類,并增加了數據成員m_ strDept, 顯然是擴充了基類的內容。

(2)派生類對基類成員的改造

主要指派生類可以對基類成員函數進行重定義。

派生類繼承了父類的私有成員,但是即使是派生類自身的成員函數也無法直接訪問這種私有成員。

派生類必須通過基類公有或保護方法間接訪問了繼承自基類私有成員。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534356.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tensorflow安裝教程

https://note.youdao.com/ynoteshare1/index.html?iddddc63e6a2dfb70605ae9753bcc71a60&typenote 如果失效請下載文件查看: 鏈接:https://pan.baidu.com/s/15FZETB3rzcpH-LOOpmpjTQ 提取碼:6jfm 如果安裝包找不到請點擊鏈接提取&am…

TensorFlow深度學習應用開發實戰(深度學習簡介和開發環境搭建)

一、深度學習的發展及其應用 1.1 深度學習的發展歷程 1956年,John McCarthy(約翰麥卡錫)等人在美國達特茅斯學院(Dartmounth College)開會探討如何使用機器模擬人的智能時,提出了“人工智能”這一概念。 …

路由與交換技術(鋪墊內容)

一、OSI參考模型 層次 結構 功能 數據 地址 設備 7 應用層 用戶接口 原始文件 主機名 主機 6 表示層 壓縮&a…

Python二級筆記(6)

一、知識點 1,continue語句用于中斷本次循環的執行,繼續執行下一輪循環的條件,表示跳出當前循環;Python中的for、while循環都有一個可選的else語句,如果break語句終止循環,那么else語句將不會執行。 2&am…

瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型

一、瀑布模型 1、按照傳統的瀑布模型開發軟件,有下述幾個特點。 ①階段間具有順序性和依賴性 階段間具有順序性和依賴性,這個特點有兩重含義: 1,必須等前一階段的工作完成之后,才能開始后一階段的工作;…

Linux基礎命令(1)

1.強大好用的Shell Shell是一個命令工具。Shell(也稱終端或殼)充當的是人與內核(硬件)之間的翻譯官,用戶把一些命令“告訴”終端,它會調用相應的程序服務去完成某些工作。 現在紅帽系統在內的許多主流Lin…

Python二級筆記(7)

知識點: 1,鏈式存儲結構既可以針對線性結構也可以針對非線性結構,鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間。 2,對象的基本特點:標識唯一性,分類性,多…

Python二級筆記(8)

知識點: 1,棧支持子程序調用。棧上一種只能在一端進行插入或刪除的線性表,在主程序調用子函數時要首先保存主程序當前狀態,然后轉去執行子程序,最終把子程序的執行結果返回到主程序中調用子程序的位置,繼續…

軟件工程(Rational統一過程)

Rational統一過程(Rational Unified Process,RUP)是由Rational軟件公司推出的一種完整而且完美的軟件過程。 RUP總結了經過多年商業化驗證的六條最有效軟件開發經驗,這些經驗被稱為“最佳實踐”。 1,最佳實踐 (1&am…

軟件工程(敏捷過程和極限編程)

1,敏捷過程 為了使軟件開發團隊具有高效工作和快速響應變化的能力,17位著名的軟件專家于2001年2月聯合起草了敏捷軟件開發宣言。 敏捷軟件開發宣言由下述4個簡單的價值觀聲明組成。 (1)個體和交互勝過過程和工具 優秀的團隊成…

軟件工程(可行性研究講解)

可行性研究 可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。(只是尋找客戶所提需求的解決方案,能干還是不能干的問題。) 可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程。 GB…

軟件工程(系統流程圖講解)

系統流程圖是概括地模型物理系統的工具。 基本符號 系統符號 系統流程圖的習慣畫法是使信息在圖中從頂向下或從左到右流動。 例子 某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零…

軟件工程(數據流圖)

數據流圖有4種基本符號: 正方形或(立方體)表示數據的源點或者終點; 圓角矩形(或圓形)代表變換數據的處理; 開口矩形(或兩條平行橫縣)代表數據存儲; 箭頭表…

網絡互聯基礎(1)

網絡互聯的基本概念 計算機網絡起始于20世紀60年代,當時網絡的概念主要是基于主機(Host)架構的低速串行(Serial)連接,提供應用程序執行、遠程打印和數據服務功能。IBM的系統網絡架構(System Network Architecture,SNA)于非IBM公司的X.25公用…

Python二級筆記(9)

知識點: 1,算法的空間復雜點是指算法在執行過程中所需要的內存空間。 2,結構化程序設計的思想包括:自頂向下、逐步求精、模塊化,限制使用goto語句。 3,字典中的“鍵”可以是整數或者字符串,但…

Python二級筆記(10)

知識點: 1,線性表的鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。 2,軟件測試是為了發現錯誤而執行程序的過程,測試要以查找錯誤為中心。 3&#x…

Qt圖形界面編程入門(6)

類的私有繼承方式 ①基類公有成員和保護成員都作為私有成員被派生類繼承,派生類自身的函數可直接訪問他們,但是派生類對象則只能通過本類的公有函數間接地訪問它們。 ②基類的私有成員成為派生類中更加封閉的私有成員,派生類內部成員函數也…

Qt圖形界面編程入門(7)

派生類的構造函數和析構函數 基類的構造函數和析構函數不能被繼承。 在派生類中,如果派生類新增的成員進行初始化,就必須加入新的構造函數。與此同時,對所有從基類繼承下來的成員的初始化工作還是由基類的構造函數完成,必須在派…

Python二級筆記(11)

知識點: 1,在棧中,棧頂指針top動態反映了棧中元素的變化情況,在循環隊列中,隊尾指針和隊頭指針的動態變化決定隊列的長度,在鏈式存儲結構中.無論是循環鏈表還是線性鏈表,插入和刪除元素時&…

Python二級筆記(12)

知識點: 1,機器周期的同步標準是指CPU訪問存儲器一次所需要的時間 2,int()函數可以將整數字符串轉換成整數,也可以將浮點數轉化為整數,但是不能將其他字符串轉換成整數。 3,當max(函數的參數是字典時&am…