zoukankan      html  css  js  c++  java
  • Java 类初始化顺序

    总的来说:

    父类静态代码块->子类静态代码块->子类main()方法->父类构造块->父类构造方法->子类构造块->子类构造方法

    注意,就算是静态的方法也需要调用才能使用,初始化只涉及到属性和构造块、构造方法,不涉及到一般的方法。

    package com.tonyluis;
    
    class superClass {
    	public superClass() {
    		System.out.println("构造方法");
    	}
    
    	{
    		System.out.println("构造块");
    	}
    	static {
    		System.out.println("静态方法块");
    	}
    }
    
    public class Test extends superClass {
    	public static void main(String args[]) {
    		System.out.println("Test main");
    		//Test test = new Test();
    	}
    
    	public Test() {
    		System.out.println("Test构造方法");
    	}
    
    	{
    		System.out.println("Test构造块");
    	}
    	static {
    		System.out.println("Test静态方法块");
    	}
    
    }
    

    输出:

    静态方法块
    Test静态方法块
    Test main

    取消掉main()方法的注释,输出

    静态方法块
    Test静态方法块
    Test main
    构造块
    构造方法
    Test构造块
    Test构造方法

  • 相关阅读:
    Junit 测试 简明教程
    Set接口
    mysql中模糊查询中的转译
    SSH乱码的解决方法
    const in c++
    inline in c++
    SQLite临时文件及其编译参数
    extern “c”
    常见姓名粤语拼法
    SQLite编译指令PRAGMA
  • 原文地址:https://www.cnblogs.com/tonyluis/p/5797573.html
Copyright © 2011-2022 走看看