在Head First In Java的构造器与垃圾收集器这一章的父类的构造函数在对象的生命中所扮演的角色这一小节中,有这样一段话:
在构造函数中使用super()调用父类的构造函数的部分,要记得子类可能会根据父类的状态来继承方法。完整的对象需要也是完整的父类核心,这也是为什么父类构造函数必须执行的原因。就算Animal上有些变量时Hippo不会用到的,但是Hippo可能会用到某些继承下来的方法必须读取Animal的实例变量。
怎样理解完整的对象需要也是完整的父类核心?
还有:这也是为什么父类构造函数必须执行的原因。看完也不明白为什么父类构造函数必须执行的原因。。?
求解。:)
次のように理解してください:
Java の継承は「is-a」概念であり、サブクラスが親クラスであることを意味します (ただし、親クラスはサブクラスではありません)。サブクラスは、デフォルトで親クラスの継承可能な要素をすべて継承しますが、親クラスのコンストラクターを継承することはできません (理由: Java のコンストラクター名はクラス名ですが、Java のメソッド継承では重複名のメカニズムが使用されているため、サブクラスは継承できません)継承 親クラスのコンストラクターを継承します)。したがって、サブクラスを構築するときは、明示的または暗黙的に、まず親クラスのコンストラクターを実行する必要があります。