[英]Calling no argument constructor of super class
如果一個類不提供任何構造函數,則編譯器將提供一個默認的構造函數,該構造函數依次調用超類的無參數。 為什么需要調用超類的無參數構造函數?
初始化該類的超級(繼承)部分
這樣您也可以初始化超類屬性。
對於對象的構造函數僅部分構造該對象有意義嗎?
它是子類實例與其超類的“是”關系的一部分。 如果SpottedFoo
是Foo
的子類(例如,每個SpottedFoo
“ is-a” Foo
),則應調用Foo
構造函數。
否則,如果跳過了Foo
構造函數執行的初始化(無論是否私有),則SpottedFoo
不能保證它可以像Foo
一樣起作用。
這是實現繼承合同的一部分:每個子類實例必須能夠像其超類的其他成員一樣工作。 這就是李斯科夫替代原則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.