Java基础----你真的了解java类创建顺序吗?

xiaoxiao2021-02-28  56

public class HelloParent { helloY y = new helloY(); static { System.out.println(“parent static block”); } HelloParent() { System.out.println(“parent construct”); } }

class HelloChild extends HelloParent { helloY y = new helloY (); static { System.out.println(“child static block”); } HelloChild() { System.out.println(“child construct”); }

public static void main(String[] args) { new HelloChild(); }

}

class helloY { helloY () { System.out.println(“this is Y”); } } 如上图所示,各位看官猜猜输出顺序是怎么样的?这里只能做一个总结: 输出顺序:先父类的静态代码块—>子类的静态代码块—>父类的成员变量初始化—> 父类的构造方法—->子类的成员变量初始化—>子类的构造方法。经过机试也是没有问题的。结果如下: parent static block child static block this is Y parent construct this is Y child construct

转载请注明原文地址: https://www.6miu.com/read-2631972.html

最新回复(0)