我们先看这个图,然后结合图来理解: 下面解释: 为什么要在子类构造方法中,调用父类的构造方法??? 这是为什么在子类的构造方法中使用super(参数列表)的原因: : 因为: 根据继承机制,子类自动拥有父类的成员,在创建子类对象的时候,子类对象在内存中划分区域存储子类对象空间中,划分两个区域,一个区域留给自己的自定义的成员变量,一个区域留给自己的父类成员变量。 即:父类的成员变量是跟随子类对象进入堆内存的。 所以: 当子类继承了父类,它就拥有了父类的成员,而对于父类成员的初始化,必须通过调用父类的构造方法来实现。 这也是为什么要使用super(参数列表);的原因。 最好结合:子类对象的内存图来理解。
|