zoukankan      html  css  js  c++  java
  • 静态代码块,普通代码块,构造函数的执行顺序

    class Father{   
        public Father(){
            System.out.println("...父类的构造方法...");
        }    
        static{
            System.out.println("...父类的静态代码块...");
        }    
        {
            System.out.println("...父类的普通代码块...");
        }    
    }
    
    class Son extends Father{    
        public Son(){
            System.out.println("...子类的构造方法...");
        }    
        static{
            System.out.println("...子类的静态代码块...");
        }    
        {
            System.out.println("...子类的普通代码块...");
        }    
    }
    
    public class CodeBlock {    
        public static void main(String[] args) {        
            Son son = new Son();
        }
    }

    执行结果:

    ...父类的静态代码块...
    ...子类的静态代码块...
    ...父类的普通代码块...
    ...父类的构造方法...
    ...子类的普通代码块...
    ...子类的构造方法...

    从执行结果可以看出:

    静态代码块总是最先执行的,且父类的静态代码块优先执行于子类的静态代码块。

    普通的代码块优先执行于构造方法

    父类的普通代码块和构造方法优先于子类

  • 相关阅读:
    关于Android中的三级缓存
    Android中的自定义控件(二)
    Android中的自定义控件(一)
    安卓四大组件之内容提供者
    实施面试题
    实施相关资料
    短路运算符
    第二章SQL映射文件
    第一章 初始MyBatis
    周测
  • 原文地址:https://www.cnblogs.com/winner-0715/p/5012581.html
Copyright © 2011-2022 走看看