1、使用super关键字调用父类成员
(1)super关键字代表父类引用,和this关键字的作用类似,都是将屏蔽了的成员变量、成员方法变得可见、可用,也就是说,用来引用被屏蔽的成员变量或成员方法。
(2)super是用在子类中,目的只有一个,就是访问直接父类中被屏蔽的内容,进一步提高代码的重用性和灵活性。
(3)super关键字可以访问父类的构造方法、属性、一般方法。
(4)通过super访问父类成员的语法格式如下:
访问父类构造方法:super(参数)
访问父类属性/方法:super.<父类属性/方法>
-->super只能出现在子类(子类的方法和构造方法)中,而不是其他位置。
-->super用于访问父类的成员,如父类的属性、方法、构造方法。
-->具有访问权限的限制,如无法通过super访问父类的private成员。
2、实例化子类对象
(1)在Java中,一个类的构造方法在如下两种情况下总是会被执行。
-->创建该类的对象(实例化)
-->创建该类的子类的对象(子类的实例化)
(2)当在Java语言中创建一个对象时,Java虚拟机会按照父类—子类的顺序执行一系列的构造方法。
(3)子类继承父类时构造方法的调用规则如下:
1)如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造
方法,则系统会默认先调用父类的无参构造方法。在这种情况下,是否写“super();”语句,效果是一样的。
2)如果子类的构造方法中通过super显示地调用了父类的有参构造方法,那么将执行父类相应的构造方法,而不执行父类无参构造方法。
3)如果子类的构造方法中通过this显示地调用了自身的其他构造方法,在相应构造方法中遵循以上两条规则。
4)如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级传递,一直执行到顶级父类Object类的无参构造方法为止。