zoukankan      html  css  js  c++  java
  • 子父类中码静态代块 构造代码块. 代码块 构造函数 成员变量 实例变量 执行顺序

    刚开始接触时,很不容易分清楚
    创建子类或者多态的情况输出结果一样:
    /*
    执行的顺序:
    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();
        }
    }
    

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

  • 相关阅读:
    12-14面向对象--抽象基类、接口、委托
    关于 try catch catch
    C# using 三种使用方式
    互斥锁(Mutex)
    C#中Monitor类、Lock关键字和Mutex类
    System.Data.SQLite
    Dictionary<TKey, TValue> 类
    AttributeTargets 枚举
    C# is和as操作符
    合并委托(多路广播委托)
  • 原文地址:https://www.cnblogs.com/huiit/p/5451473.html
Copyright © 2011-2022 走看看