Java - 对象内存图

「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

继承 内存图

image.png

image.png

image.png

image.png

Java只支持单继承,不支持多继承

image.png

Java支持多层继承 子类A继承父类B,父类B可以继承父类C

Object特点 Java中所有类,要么直接继承了Object,要么默认继承了Object,要么间接继承了Object,Object是祖宗类。

image.png

在子类方法中访问成员(成员变量、成员方法)满足:就近原则 1.先子类局部范围找 2.然后子类成员范围找 3.然后父类成员范围找,如果父类范围还没有找到则报错。

image.png

image.png

子类继承父类后构造器的特点: 子类中所有的构造器默认都会先访问父类中无参构造器,再执行自己。

为什么? 1.子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。 2.子类初始化之前,一定要调用父类构造器先完成父类数据空间的初始化。

怎么调用父类构造器的? 1.子类构造器的第一行语句默认都是:super(), 不写也存在。

image.png

image.png

image.png

this(...)和super(...)使用注意点: 子类通过this(...)去调用本类的其他构造器,本类其他构造器会通过super去手动调用父类的构造器,最终还是会调用父类构造器的。 注意:this(...) super(...)都只能放在构造器的第一行,所以二者不能共存在同一个构造器中

Guess you like

Origin juejin.im/post/7034424664394825759