继承语法
在创建子类的对象时,Java虚拟机首先执行父类的构造方法,然后再执行子类的构造方法。在多级继承的情况下,将从继承树的最上层的父类开始,依次执行各个类的构造方法,这可以保证子类对象从所有直接或间接父类中继承的实例变量都别正确地初始化。
- 子类的所有构造方法内部,第一行会(隐式)自动先调用父类的无参构造函数(
super()
) - 如果子类构造方法第一行显式调用了父类构造方法,系统就不再调用父类的无参构造函数
- 子类的构造方法中调用父类的构造函数必须写在第一行,如果父类没有无参构造函数,子类必须在构造方法中显式调用父类的有参构造函数
继承的初始化顺序
‼️ 初始化顺序:父类的静态变量(父类的静态代码块) --> 子类的静态变量(子类的静态代码快) --> 父类的非静态变量(父类的非静态代码块) --> 父类的构造函数 --> 子类的非静态变量(子类的非静态代码块)–> 子类的构造函数
1 | package com.hts.test; |