zoukankan      html  css  js  c++  java
  • (一道面试题)生成实例时代码的执行顺序

    一.编写父类对象:

    public class Father {
    	public Father() {
    		// TODO Auto-generated constructor stub
    		System.out.println("我是Father的构造方法");
    	}
    	{
    	   System.out.println("我是Father的代码快");	
    	}
    	static
    	{
    		 System.out.println("我是Father的static代码快");	
    		}
    }
    

    二.编写子类对象:

    public class Son extends Father {
        public Son() {
            // TODO Auto-generated constructor stub
            System.out.println("我是Son的构造方法");
        }
        {
           System.out.println("我是Son的代码快");    
        }
        static
        {
             System.out.println("我是Son的static代码快");    
            }
    }

    三.编写测试类:

    public class Test {
        public static void main(String[] args) {
            Son son=new Son();
        }
    }

    四.实验结果:

    五.总结:

    出现了6句话,这6句话也代表了调用过程.

    1).最先开始调用static的方法.父类static块---->子类static块

    2).执行父类方法

      代码块的执行顺序优于构造方法.先调用执行代码块代码-->再执行父类构造方法的代码

    3).执行子类方法

       代码块的执行顺序优于构造方法.先调用执行代码块代码-->再执行子类构造方法的代码

     结论:父类静态代码块--->子类静态代码块--->父类代码块--->父类构造方法代码--->子类代码块--->子类构造方法代码

  • 相关阅读:
    bzoj 1503: [NOI 2004]郁闷的出纳员
    bzoj 1001: [BeiJing2006]狼抓兔子
    bzoj 1005: [HNOI2008]明明的烦恼
    bzoj 1004: [HNOI2008]Cards
    bzoj 1003: [ZJOI2006]物流运输trans
    06day1
    05day2
    04day2
    04day1
    03day2
  • 原文地址:https://www.cnblogs.com/hckblogs/p/7880625.html
Copyright © 2011-2022 走看看