类加载机制,初始化的问题

    xiaoxiao2021-03-25  137

    public class Test12{ public static void main(String[] args){ Z z = new Z(); } } class X{ public X(){ System.out.println("x构造方法"); } } class Y{ static{ System.out.println("Y静态代码块"); } public Y(){ System.out.println("Y构造方法"); } X x = new X(); { System.out.println("Y构造快"); } } class Z extends Y{ { System.out.println("Z构造快"); } static{ System.out.println("Z静态代码块"); } public Z(){ System.out.println("Z构造方法"); }

    }

    最后输出结果:

    Y静态代码块 Z静态代码块 x构造方法 Y构造快 Y构造方法 Z构造快 Z构造方法

    总结:

    特点:普通代码块可以在一个方法中用来划分作用域 构造快是在创建对象时优先构造方法被调用 静态代码块,在该类被调用时只会执行一次,在实际开发中通常用于初始化应用程序需要的数据等。(常用)

    创建子类对象时先去加载父类对象,然后先调用父类的构造,在调用子类的构造

    在调用子类的构造方法时,无论写不写super();这个方法,都会调用父类的无参构造方法。

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

    最新回复(0)