oop - java中为什么父类构造函数必须执行?
黄舟
黄舟 2017-04-17 14:22:04
0
1
682

在Head First In Java的构造器与垃圾收集器这一章的父类的构造函数在对象的生命中所扮演的角色这一小节中,有这样一段话:

在构造函数中使用super()调用父类的构造函数的部分,要记得子类可能会根据父类的状态来继承方法。完整的对象需要也是完整的父类核心,这也是为什么父类构造函数必须执行的原因。就算Animal上有些变量时Hippo不会用到的,但是Hippo可能会用到某些继承下来的方法必须读取Animal的实例变量。

怎样理解完整的对象需要也是完整的父类核心?
还有:这也是为什么父类构造函数必须执行的原因。看完也不明白为什么父类构造函数必须执行的原因。。?

求解。:)

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(1)
巴扎黑

這樣理解:
Java的繼承是一個"is-a"的概念,也就是說子類別就是父類別(但父類別不是子類別)。子類別預設繼承了父類別所有可繼承的元素,唯獨不能繼承父類別的建構子(因為:Java的建構函式名稱就是類別名,但Java的方法繼承是採用重名機制,故而子類別永遠不能繼承父類別的建構子)。所以在建構子類別時,必須先執行父類別的建構函數,無論是明確地執行或隱式地執行。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!