1. 程式人生 > >C++基礎教程面向物件(學習筆記(43))

C++基礎教程面向物件(學習筆記(43))

繼承簡介

在上一章中,我們討論了物件組合,其中複雜類是從更簡單的類和型別構造的。物件組合非常適合構建與其部件具有“has-a”關係的新物件。但是,物件組合只是C ++允許您構造複雜類的兩種主要方式之一。第二種方式是通過繼承,它模擬兩個物件之間的“is-a”關係。

與通過組合和連線其他物件來建立新物件的物件組合不同,繼承涉及通過直接獲取其他物件的屬性和行為然後擴充套件或特化它們來建立新物件。就像物件組合一樣,繼承在現實生活中無處不在。當你被懷孕時,你繼承了你父母的基因,並從他們兩個中獲得了身體屬性 - 但是你在自己身上添加了自己的個性。技術產品(計算機,手機等)繼承了其前輩的功能(通常用於向後相容)。例如,英特爾奔騰處理器繼承了英特爾486處理器定義的許多功能,後者本身繼承了早期處理器的功能。C ++繼承了C語言的許多特性,C語言所基於的語言,

考慮蘋果和香蕉。雖然蘋果和香蕉是不同的水果,但兩者的共同點都是水果。而且因為蘋果和香蕉都是水果,簡單的邏輯告訴我們,任何與水果相關的屬性都適用於蘋果和香蕉。例如,所有水果都有名稱,顏色和大小。因此,蘋果和香蕉也有名稱,顏色和大小。我們可以說蘋果和香蕉繼承(獲得)這些水果的所有特性,因為它們是水果。我們也知道果實經過成熟過程,可以通過它來食用。因為蘋果和香蕉都是水果,我們也知道蘋果和香蕉會繼承成熟的行為。

放入圖表中,蘋果,香蕉和水果之間的關係可能如下所示: 在這裡插入圖片描述 此圖定義了層次結構。

層次結構

層次結構是顯示各種物件如何相關的圖表。大多數等級要麼顯示隨著時間的推移(386 - > 486 - >奔騰),要麼以從一般到特定(水果 - >蘋果 - >紅色美味)的方式對事物進行分類。排序都會定義一個等級(從一般到特定)。

這是層次結構的另一個例子:正方形是一個矩形,它是一個四邊形,是一個形狀。直角三角形是三角形,也是一個形狀。放入層次結構圖,看起來像這樣: 在這裡插入圖片描述 此圖從一般(頂部)到特定(底部),層次結構中的每個專案都繼承了其父專案的屬性和行為。

展望未來

在本章中,我們將探討繼承如何在C ++中工作的基礎知識。

下一章,我們將探討繼承如何通過虛擬函式實現多型(面向物件程式設計的大流行語之一)。

隨著我們的進步,我們還將討論繼承的主要優點,以及一些缺點。