java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序

    xiaoxiao2021-04-18  68

    Father

    package zjq.test.initialize; public class Father { static{ System.out.println("父类的静态代码块"); } { System.out.println("父类的非静态代码块"); } public Father(){ System.out.println("父类的无参构造函数"); } public Father(int a){ System.out.println("父类的有参构造函数"); } public static void print(){ System.out.println("父类的静态方法,会重写"); } public static void printFather(){ System.out.println("父类的静态方法"); } } Sun

    package zjq.test.initialize; public class Sun extends Father{ static{ System.out.println("子类的静态代码块"); } { System.out.println("子类的非静态代码块"); } public Sun(){ System.out.println("子类的无参构造函数"); } public Sun(int a){ System.out.println("子类的有参构造函数"); } public static void print(){ System.out.println("子类的静态方法,重写父类"); } public static void printSun(){ System.out.println("子类的静态方法"); } }

    Test

    package zjq.test.initialize; public class Test { public static void main(String[] args) { new Sun(); Sun.print(); System.out.println("-----------------"); new Sun(1); } }

    结果:

    父类的静态代码块 子类的静态代码块 父类的非静态代码块 父类的无参构造函数 子类的非静态代码块 子类的无参构造函数 子类的静态方法,重写父类 ----------------- 父类的非静态代码块 父类的无参构造函数 子类的非静态代码块 子类的有参构造函数

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

    最新回复(0)