疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中复杂对象调用构造器顺序


 

   

  关于Java中复杂对象调用构造器顺序,话不多说直接上代码

  public class A {

  public A() {

  System.out.println("A被初始化了");

  }

  }

  public class B {

  public B() {

  System.out.println("B被初始化了");

  }

  }

  public class C {

  public C() {

  System.out.println("C被初始化了");

  }

  }

  public class D extends A {

  private B b = new B();

  private C c = new C();

  public D() {

  System.out.println("D被初始化了");

  }

  public static void main(String[] args) {

  D d = new D();

  }

  }

  输出是:

  A被初始化了

  B被初始化了

  C被初始化了

  D被初始化了

  根据输出结果 可以看出有以下几个规律

  1、首先调用基类的构造方法,如果有多层继承现象,则会首先构造这个结构的根,然后向下构造直到最底层导出类。

  2、按照方法内域的声明顺序调用成员的初始化方法。

  3、调用导出类构造方法