• 子父类中码静态代块 构造代码块. 代码块 构造函数 成员变量 实例变量 执行顺序


    刚开始接触时,很不容易分清楚
    创建子类或者多态的情况输出结果一样:
    /*
    执行的顺序:
    1.父类静态代码块 
    2.子类静态代码块 
    3.父类构造块 /实例变量(new 创建的变量成员)//谁在前执行谁,执行完再执行构造函数
    4.父类构造函数//父类构造函数有方法,如果方法子类有就执行子类的方法,没有才再执行父类方法.//如果子类有父类没有会报错!//父类私有该方法就执行父类的方法
    5.子类构造块/实例变量//谁在前执行谁,执行完再执行构造函数
    6.子类构造函数
    7.子类普通方法//调用成员变量,看子类的值,没有再看父类的值
    8.子类成员变量//没有就调用父类的值
    9.普通方法输出结果
    class A{  
        int m=1;
        {System.out.println("111");}//1-->111
        A(){
            speak();//4-->直接执行子类的方法5
        }
        C c = new C();        //2-->
        {System.out.println("222");}
        void speak(){
            System.out.println("a");
        }
    }
    class C{
        C(){
            System.out.println("c");//3-->c
                                    //7-->c
        }
    }
    
    class B extends A{
        int m = 5;          //10-->
        {System.out.println("333");}
        B(){
            System.out.println("b");//8-->b
        }
        C c = new C();        //6-->
        void speak(){
            System.out.println(m);//5-->0
                                  //9-->
                                  //11-->5
        }
        {System.out.println("444");}
    
        public static void main (String[] args){
            B b = new B();
            b.speak();
        }
    }
    

      注释后面为执行顺序和输出结果.

  • 相关阅读:
    HDU 4947 GCD Array 容斥原理+树状数组
    Codeforces Round #363 (Div. 2)
    白书 博弈学习
    2016 Multi-University Training Contest 1
    KM算法 PK 最小费用最大流
    final 发布 领跑衫获奖感想
    2016"百度之星"
    爆打团队 2016.05.05 站立会议
    爆打团队 四则运算 beta视频
    爆打团队 2016.04.27 站立会议
  • 原文地址:https://www.cnblogs.com/huiit/p/5451473.html
Copyright © 2020-2023  润新知