繼承和多型

2021-03-31 14:34:22 字數 782 閱讀 6347

類還有乙個重要的特性就是繼承,什麼是繼承?它又有什麼作用呢?繼承最主要的目的就是為了擴充套件原類的功能,加強或改進原類所沒有定義的屬性及方法。例如我們有狗這個類,可是狗的種類還是有很多,比如說博美狗,聖伯納,柴犬等等,如果只用狗一種類來定義所有種類狗的屬性及方法,那麼用這個類所產生出來的物件一定會有一些對其他物件沒有用的屬性和方法,例如聖伯納狗有雪地救人的方法,可是博美狗並不需要也不可能到雪地裡去救人,所以在博美狗的物件中並不需要這個方法

所以我們可以在狗的類下面,再去定義一些子類,這些子類會繼承狗類中雖有公共的可以繼承的屬性和方法,然後再加上一些自己這個類所特有的屬性及方法,或是修改原本不使用於這個類的方法。我們習慣稱被繼承的類為父類,而稱繼承的類為子類

在使用多型概念的時候,有三點必須要主要到,第一某一特定例項就是該特定例項,它不會因為用不同的表示法來形容就會改變它原來的例項,比如有乙隻叫小黑的熊,你可以稱它是只動物,但是實際上它還是乙個熊類所產生出來的物件,而不是乙個動物類的物件。第二就是當你把小黑當成動物來看的時候,那麼你只能使用和訪問動物類所提供的屬性和方法。也就是說熊類有乙個新的方法,例如睡16個小時,可是你把它當成動物來看時你根本就不知道它是熊,又怎麼會知道它睡16個小時呢?所以你把它當動物來看的時,不能使用子類才有的方法。第三,就是如果父類又方法被子類覆蓋了,那麼當你以父類的身份來呼叫這個方法時就會執行子類的方法。還是以睡覺的方法來打個比方,比如給動物類設定的是睡8個小時,熊類繼承並修改了這個方法,例如延長睡覺時間為16個小時。這個道理很簡單,乙個物件產生後,那麼直到死去之前,它永遠是當初產生它時的類的例項。所以熊就是會睡16個小時,不管你把它當什麼來看,它就會執行它自己的修改過的方法

繼承和多型

物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...

繼承和多型

物件導向程式設計時有乙個非常重要的原則 write once only once 編寫一次,且僅編寫一次 如果沒有繼承這種機制我們可能要重複寫很多 下面來看一下繼承 一 繼承 1 子類如果繼承父類必須使用extends這個關鍵字 2 子類呼叫父類的構造方法使用super關鍵字,也可以通過super來...

繼承和多型

1 base關鍵字class car class trashcar car 用base關鍵字顯式呼叫基類建構函式 如果基類定義了帶有引數的建構函式,那麼此建構函式必須被執行,且在派生類中實現該建構函式,此時我們可以使用base關鍵字 2 virtual和override virtual 用在基類中,...