问题:子类继承父类,构造函数及公共属性的执行顺序是怎样的?
示例代码
<SPAN style="FONT-FAMILY: Times New Roman; FONT-SIZE: 14px">public class A extends C { static void i() { public A() { } public static void main(String[] args) { class B { class C { public C() { class D { class E { class F { class G { class H { |
执行结果:
this is class E
this is class G
this is class H
this is static tack
this is class D
this is class F
this is class C
this is class B
this is class A
执行顺序:
1、实现父类公共的静态属性或静态的块级代码
2、实现本身的公共的静态属性
3、实现父类公共属性
4、执行父类的构造方法
5、实现本身的公共属性
6、执行本身的构造函数
7、静态方法不执行
补充:
当父类有多个构造函数,若子类用super(参数信息)指明调用父类有参数的构造函数,则不执行无参数的构造方法