zoukankan      html  css  js  c++  java
  • 非靜態初始化塊與夠着函數的 執行順序

    題目:

    子類A繼承父類B,A a=new A();則父類B夠着函數、父類B靜態代碼塊、父類B非靜態代碼塊執行的先後順序是?

    正確的執行順序是:杜磊B靜態代碼塊-》子類A靜態代碼塊-》父類B非靜態代碼塊-》父類B構造函數-》子類A非靜態代碼塊-》子類A構造函數

    也就是説非靜態初始化塊的執行順序要在構造函數之前。

     1 class SuperClass{
     2     private static String str="Spuer Class Static Variable";
     3     static{
     4     System.out.println("Spuer Class Static Block:"+str);
     5     }
     6     public SuperClass(){
     7     System.out.println("Spuer class Constructor Menthod");
     8     }
     9     {
    10     System.out.println("super class Block");
    11     }
    12     
    13 }
    14 
    15 public class ObjectInit extends SuperClass{
    16     private static String str="Class Static Variable";
    17     static{
    18     System.out.println{"Class Static Block:"+str};
    19     }
    20     public ObjectInit(){
    21     System.out.println("constructor Menthod");
    22     }
    23     {
    24     System.out.println("Class Block");
    25     }
    26     public static void main(String[] args){
    27         @SuppressWarnings("unused")
    28         ObjectInit a = new ObjectInit();
    29     }
    30 }


    執行完之後可以看到順序如下:
    Spuer Class Static Block:Spuer Class Static Variable
    Class Static Block:Spuer Class Static Variable
    Spuer Class Block
    Spuer class Constructor Menthod
    Class Block
    Constructor Menthod
  • 相关阅读:
    注册界面测试案例注意点
    linux常用命令
    linux常用快捷键总结
    2015.8.29某高级企业的在线笔试题
    图像处理------直方图均衡化
    “猫叫系统”开启了观察者模式
    Hua Wei 机试题目四---2014
    Hua Wei 机试题目三---2014
    Hua Wei 机试题目二
    Hua Wei 机试题目一
  • 原文地址:https://www.cnblogs.com/lucong-white/p/7609043.html
Copyright © 2011-2022 走看看