java super的使用(翻譯自Java Tutorials)

來源:互聯網
上載者:User

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/26/2789722.html

訪問父類的成員

如果你覆蓋了父類的方法,你可以通過super調用父類被覆蓋的方法,也可以通過super引用被隱藏的變數(儘管隱藏變數是不推薦的方式).

假設父類是這樣的:

public class Superclass {    public void printMethod() {        System.out.println("Printed in Superclass.");    }}

這裡有一個子類Subclass,它會覆蓋方法printMethod():

public class Subclass extends Superclass {    // overrides printMethod in Superclass    public void printMethod() {        super.printMethod();        System.out.println("Printed in Subclass");    }    public static void main(String[] args) {        Subclass s = new Subclass();        s.printMethod();        }}

在Subclass的方法printMethod(),覆蓋了父類的printMethod()方法,如果要引用父類的printMethod()方法,必須使用一個被修飾的名字,如上使用super.編譯並執行Subclass,輸出如下:

Printed in Superclass.Printed in Subclass

 

子類構造方法

下面的例子詳解如何使用super關鍵字調用父類的構造方法,回顧之前Bicycle的例子,MountainBike是Bicycle的子類,這裡是MountainBike(子類)構造方法調用父類構造方法,並添加自己的初始化代碼的例子:

public MountainBike(int startHeight,                     int startCadence,                    int startSpeed,                    int startGear) {    super(startCadence, startSpeed, startGear);    seatHeight = startHeight;}  

調用父類的構造方法,必須位於子類的構造方法的第一行.

調用父類的構造方法的文法如下:

super();  or:super(parameter list);

super()是調用父類的無參構造方法, super(parameter list)是調用父類對應的參數的構造方法。

注意:如果子類不顯式調用父類的構造方法,java編譯器會自動插入一條調用父類的無參構造方法的指令,如果父類沒有無參構造方法,會出現一個編譯時間異常.Object沒有這個問題,如果object是唯一的父類,就不存在問題。

如果子類的構造方法調用父類的構造方法,不管顯式還是隱式,你也許會思考整個構造方法經過所有對象的鏈路.事實上是存在的,它稱之為構造方法鏈,而且你必須意識到,有一個同樣的鏈路從最頂層的類返回。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.