Java構造函數執行順序


  • 首先執行基類的構造函數
  • 然后執行派生類的構造函數之外的初始化語句
  • 最后執行派生類的構造函數

在Java中,如果派生類構造函數需要調用基類的構造函數,那么基類構造函數必須作為派生類構造函數的第一句話。在Python中,派生類調用基類的構造函數就比較靈活。

如下代碼有一個基類Base,一個派生類Son,Son有一個成員變量Value。在創建Son對象時,執行順序為基類的構造函數、Value的構造函數、Son的構造函數。

package weiyinfu.colorama;

public class Why {
class Base {
    Base() {
        System.out.println("base is called");
    }
}

class Value {
    Value() {
        System.out.println("value is called");
    }
}

class Son extends Base {
    Value v = new Value();

    Son() {
        System.out.println("son is called");
    }
}

public static void main(String[] args) {
    Why y = new Why();
    Son s = y.new Son();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM