標題解釋了我相信的一切。在C#中,我現在意識到無論派生類中的構造函數是調用基類構造函數,無論它是顯式調用還是隱式默認構造函數。我的問題是爲什麼?我認爲這是因爲派生類需要創建基類的對象,但爲什麼?爲什麼派生類需要使用基類構造函數
2
A
回答
9
我認爲這是因爲派生類需要創建基類的對象,但爲什麼?
派生類的實例是基類的一個實例。如果你對構建動物時發生的事情有規定,並且你正在構建長頸鹿,那麼你必須執行構建動物的規則。在C#中,該機制是「調用基類構造函數」。
9
派生類是基類加上派生類添加的額外事物。
您仍需要一些初始化基類部分的代碼,以便您可以在頂部添加額外的部分。對基礎構造函數的調用是初始化發生的地方。
1
比方說,這輛車是你的抽象類,寶馬,馬自達,吉普車是你的駕駛類。 你有字段:名稱,型號,.. 你有constroctor:汽車類汽車(),汽車(弦模型)
,那麼當編譯器做內存分配對象需要閱讀抽象構造要注意的名稱,型號。 這將調用默認的構造函數。但是您可以使用base(「z4」)強制在抽象類中調用重寫的構造函數。
1
正如斯科特張伯倫所說的派生類是什麼(加上一些更多的功能)。
當然,對象可以在構造函數中有行爲。
無論如何,如果你不需要繼承他們,你應該構造代碼,以正確的方式,
你應該離開基地構造空的,要看您的具體需求
相關問題
- 1. 爲什麼派生的構造函數需要基礎析構函數?
- 2. 從基類構造函數調用派生類的虛函數?
- 3. C# - 使所有派生類調用基類構造函數
- 4. 設置基類屬性使用派生類的構造函數
- 5. 在基類構造函數中使用派生類屬性
- 6. 強制派生類使用基類的構造函數
- 7. 基類構造函數在派生類構造函數之前真的調用
- 8. 爲什麼派生類重載函數隱藏基類函數?
- 9. 從調用派生類的基類構造函數在Java中
- 10. 關於基類和派生類的構造函數調用
- 11. 在派生類中調用基類構造函數
- 12. 基類如何可以禁用派生類的構造函數
- 13. 派生類調用錯誤的基類構造函數
- 14. 在派生類中調用基類構造函數
- 15. 在C++中調用的基類和派生類構造函數
- 16. 派生類是否總是需要調用默認的基礎構造函數?
- 17. 派生類構造函數調用
- 18. 爲什麼在調用基類複製構造函數(C++)時將派生類類型作爲參數傳遞?
- 19. 任何方式在派生類中使用基構造函數?
- 20. 指針在基類構造函數派生類
- 21. 派生類的構造函數以基類對象
- 22. 在派生類構造函數中複製基類
- 23. 是否可以從基類構造函數創建派生類?
- 24. 我不希望派生類繼承基類的構造函數
- 25. 構造函數在基類和派生類
- 26. 將派生類構造函數分配給基類指針
- 27. 基類和派生類構造函數的內存分配
- 28. 什麼是基類構造函數,我爲什麼要使用它? (帶示例)
- 29. 爲什麼EnumMap構造函數需要類參數?
- 30. 派生類中的VB.NET構造函數