zoukankan      html  css  js  c++  java
  • Java类实例化时候的加载顺序

    面试试题中经常考到此问题,现在做进一步的总结:

    public class Student {
    	public Student(String name){
    		System.out.println(name);
    	}
    }
    // 父类
    public class FuClass {
    	private static Student student=new Student("父类静态变量");
    	private Student student1=new Student("父类非静态变量");
    	static {
    		System.out.println("父类静态代码块");
    	}
    	public FuClass(){
    		System.out.println("父类构造方法");
    	}
    	{
    		System.out.println("父类非静态代码块 ");
    	}
    	
    }
    //子类
    public class ZiClass extends FuClass {
    	private Student student=new Student("子类非静态变量");
    	private static Student student1=new Student("子类静态变量");
    	public ZiClass(){
    		System.out.println("子类构造方法");
    	}
    	static {
    		System.out.println("子类静态代码块");
    	}
    	{
    		System.out.println("子类非静态代码块");
    	}
    }
    //测试类
    public class test {
    	public static void main(String[] args) {
    		ZiClass zi=new ZiClass();
    	}
    }
    

    最终执行结果:

    父类静态变量

    父类静态代码块

    子类静态变量

    子类静态代码块

    父类非静态变量

    父类非静态代码块 

    父类构造方法

    子类非静态变量

    子类非静态代码块

    子类构造方法

      

  • 相关阅读:
    JavaEE 第四周
    JavaEE 第三周
    JavaEE 第二周
    JavaEE 第一周
    js字符串方法
    javaee项目库存管理系统总结
    javaee期末团队项目库存管理系统概要信息
    JAVAEE第十一周
    JSON
    Facelets
  • 原文地址:https://www.cnblogs.com/woolhc/p/4925097.html
Copyright © 2011-2022 走看看