Java多態堆棧信息

public class Test {
    static class A {
        public A() {
            System.out.println("A constructor");
        }
        static {
            System.out.println("A static {}");
        }
        {
            System.out.println("Common");
            System.out.println("A {}");
        }
    }
    static class B extends A {
        public B() {
            System.out.println("B constructor");
        }
        {
            System.out.println("B {}");
            System.out.println("Common");
        }
        static {
            System.out.println("B static {}");
        }
    }

    public static void main(String[] args) {
        A t = new B();
        while (true) {// 程序停住,然後去看堆棧信息
        }
    }
}

問題1,程序輸出?

answer1:

"C:\Program Files\Java\jdk-11.0.7\bin\java.exe" "-javaagent:operator.Test
A static {}
B static {}
A {}
Common
A constructor
B {}
Common
B constructor
結論:父static > 子static > 父{} > 子{} > 父constructor > 子 constructor

問題2:堆棧中信息?

answer2:

棧中:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章