標籤:out 構造器 初始化過程 顏色 extend mil 構造方法 步驟 ssi
2018-05-01
子類初始化過程
構造器的調用遵循以下的順序:
(1):調用基類構造器。這個步驟會不斷地反覆遞迴下去,首先是構造這種階層的根,然後是下一層匯出類,等等,直到最低層的匯出類。
(2):按聲明順序調用成員的初始化方法。 .
(3):調用匯出類構造器的主體。(也就是文中的main方法中的內容)
這樣做的最終目的:讓方法中的所有成員變數都得到初始化。
建立子類對象之前會先建立父類對象
調用子類構造器之前,在子類構造器之前會先調用父類的構造器,預設調用的是無參構造器
如果父類不存在可以被子類調用的構造器(父類所有的狀態和行為搜用private修飾),則不存在子類。(事實上,這種情況基本不存在)
如果父類沒有提供無參的構造器,此時子類必須顯示通過super語句去調用父類帶參數的構造器。(看圖)
代碼舉例:
//動物class Animal{ private String name; private int age; Animal(String name, int age){ System.out.println("動物構造器"); this.name = name; this.age = age; } public String getName(){ return name; }}//魚class Fish extends Animal{ private String color;//顏色 Fish(String name, int age, String color){ super(name,age);//顯示調用構造器,super調用父類構造器,必須放在子類構造器第一句話。 this.color = color; //super();//隱式調用當前對象的父類的無參構造方法 } public void say(){ System.out.println(getName() + "," +this.color); }}//子類初始化過程class SubClassInitDemo { public static void main(String[] args) { //建立一個魚對象 Fish f = new Fish("金魚", 5, "紅色"); f.say(); }}
輸出結果:
動物構造器
金魚,黃色
二、Java物件導向(8)_繼承思想——子類初始化過程