面向對象-簡單的(子父類構造函數的特點)-子類實例化過程

子類的實例化過程

子類的所有的構造函數,默認都會有訪問父類空參數的構造函數,因爲子類每一個構造函數內的第一行都有一句話隱式

的語句 super();

當父類中沒有空參數的構造,子類必須要自己手動通過 super語句的形式來指定要訪問父類的構造函數

當然子類的構造函數的第一行也可以手動指定 this關鍵字 語句來訪問本類中的構造函數。

看以下例子:


public class X {
    
public static void main(String[] args){
    
         zi Z=new zi();//創建zi類對象
    }
}

class fu{


        private String  name;//加了私有化 不能訪問了
        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();這裏是隱式的!


    System.out.println("子類");

         }

    }

/*

輸出結果是:

父類
年齡18
身高170米
子類

爲什麼 創建子類對象爲什麼一定要訪問父類的構造函數?

因爲:在構造函數的第一行有一條隱式的 super();語句。

也可以手動的添加 super()訪問父類的構造函數。

其實吧!這是子類對象實例的初始過程 ,她會看這父類是怎麼做的,如果父類已經做了,不就不用做了。

直接拿拿過來用就可以了 不需要再重新定義了,父類也有隱式的super()語句 她會逐漸向上找!

*/

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