特點:在子類物件例項化時,缺省會先呼叫父類的建構函式,一直往上找父親。從老祖宗開始執行,一代一代往下。
例子:
class
gameobject
}class
animal
: gameobject
}class
tree
: animal
}class
person
}
截圖:
父類中的無參建構函式
所以通過base關鍵字,來呼叫父類的有參建構函式。
例子:
class
gameobject
}class
animal
: gameobject
只動物"
, i);}
}class
tree
: animal
顆樹",num);}
//通過this呼叫該類引數匹配的建構函式,簡接呼叫了父類
public
tree
(int num,string category)
:this
(num)
顆樹", num,category);}
}class
person
}
截圖:
this與base的區別:
語法上:括號裡變數名要與前面建構函式裡的引數名一致
this代表該類的某乙個建構函式
base代表父類的某乙個建構函式
C 建構函式的繼承
一 基類沒有定義建構函式的情況 1 派生類也可以不定義建構函式,全部採用預設的建構函式,此時,派生類新增成員的初始化工作可以用其他公有函式來完成。2 如果只有派生類定義建構函式,只需要構造派生類物件即可,物件的基類部分使用預設建構函式來自動建立 二 基類中存在建構函式 1 基類中存在不帶引數的建構函...
c 繼承的建構函式
子類為完成基類初始化,在c 11之前,需要在初始化列表呼叫基類的建構函式,從而完成建構函式的傳遞。如果基類擁有多個建構函式,那麼子類也需要實現多個與基類建構函式對應的建構函式。class base base char c m c c m value 0 private intm value char...
C 繼承中的建構函式問題
c 的繼承是不會整合建構函式的,但是子類在實現建構函式時會預設呼叫父類中的無參建構函式 想要不呼叫就要在子類中進行一些特殊操作 class program class person public person 子類需要呼叫父類的無參建構函式 public string name public int...