C 的繼承以及繼承中的構造方法

2021-09-27 13:09:55 字數 1026 閱讀 1466

繼承是個啥

簡單的理解就是,讓a類去繼承b類,那麼a類就會有b類中的屬性,變數,方法,但不會繼承b類的構造方法(相關構造方法的問題,下面再解釋),當a類繼承b類後,a類稱作b類的子類,而b類稱作a類的父類,還有其他的叫法,比如a對應派生類,b對應基類。

舉個例子,假若寫了乙個動物類,其中包含年齡的屬性,然後再寫乙個狗類去繼承這個動物類,狗類中寫入品種屬性,當你呼叫狗類時,可以訪問到品種以及年齡。

繼承的**格式

乙個類要繼承另乙個類,那麼在其宣告時採用如下格式 class a :b{} 表示a類繼承自b類,拿上面那個例子做個**演示如下:

class

animal

class

dog:

animal

繼承的特點子類例項化規則

在子類例項化時,先去例項化其父類部分,再去例項化子類的附加部分

子類例項化與構造方法的關係

由於例項化這個過程是要呼叫構造方法的,所以根據子類例項化規則,子類例項化時應先呼叫父類的構造方法將父類部分例項化出來,而預設是去呼叫父類的無參構造方法,因此當父類中寫入且僅寫入乙個有參構造方法時,繼承其的子類直接使用構造方法例項化會報錯,因為呼叫不到無參構造方法。

繼承中構造方法衝突的解決方案

在父類中再寫入乙份無參的構造方法,哪怕其方法體為空也可以。

讓子類的構造方法之前執行父類的構造方法,使用以下格式讓其實現

使乙個方法在執行前呼叫另乙個方法下面再用上面的例子做乙個**演示,去演示子類中構造方法之前呼叫父類的有參構造方法

class

program

}class

animal

}class

dog:

animal

}

C 繼承中的構造方法

繼承中的構造方法 乙個子類物件在例項化之前,需要先例項化從父類繼承到的部分。例項化父類部分,缺省會使用父類中無參的構造方法。先看以下問題,此處cat繼承了父類animal會報錯,報錯如下 解決方案 如下 兩種解決方案 class animal 有參構造方法 public animal string ...

繼承中的構造方法

繼承中的構造方法 a 子類的構造過程中必須呼叫其基類的構造方法。b 子類可以在自己的構造方法中使用super arguments.呼叫基類的構造方法。b.1 使用this arguments.呼叫本類的另外構造方法。b.2 如果呼叫super,必須寫在子類構造方法的第一行。c 如果子類的構造方法中沒...

繼承中的構造方法

package text 繼承中的構造方法 子類的構造的過程中必須呼叫其基類的構造方法 子類可以在自己的構造方法找個使用super 引數列表 呼叫基類的構造方法 注意 使用this 引數列表 呼叫本類外的構造方法 如果呼叫super,必須寫在子類構造方法的第一行 如果子類的構造方法中沒有顯示地調基類...