搜尋

首頁  >  問答  >  主體

oop - java中为什么父类构造函数必须执行?

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

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

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

求解。:)

黄舟黄舟2769 天前741

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 14:24:04

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

    回覆
    0
  • 取消回覆