二、Java物件導向(8)_繼承思想——子類初始化過程

來源:互聯網
上載者:User

標籤: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)_繼承思想——子類初始化過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.