子類的實例化過程
子類的所有的構造函數,默認都會有訪問父類空參數的構造函數,因爲子類每一個構造函數內的第一行都有一句話隱式
的語句 super();
當父類中沒有空參數的構造,子類必須要自己手動通過 super語句的形式來指定要訪問父類的構造函數
當然子類的構造函數的第一行也可以手動指定 this關鍵字 語句來訪問本類中的構造函數。
看以下例子:
public class X {
public static void main(String[] args){
zi Z=new zi();//創建zi類對象
}
}
class fu{
int Age;
int height;
public fu (int Age,int height){ //有參數的構造函數
System.out.println("父類");
System.out.println("年齡"+Age);
System.out.println("身高"+height+"米");
}
}
class zi extends fu { //子類繼承父類
public zi(){ //構造函數
super(18,170);//手動添加 訪問父類的構造函數
//super();這裏是隱式的!
}
}
/*
輸出結果是:
父類
年齡18
身高170米
子類
爲什麼 創建子類對象爲什麼一定要訪問父類的構造函數?
因爲:在構造函數的第一行有一條隱式的 super();語句。
也可以手動的添加 super()訪問父類的構造函數。
其實吧!這是子類對象實例的初始過程 ,她會看這父類是怎麼做的,如果父類已經做了,不就不用做了。
直接拿拿過來用就可以了 不需要再重新定義了,父類也有隱式的super()語句 她會逐漸向上找!
*/