Java,java官網下載

來源:互聯網
上載者:User

Java,java官網下載

Java未寫繼承的類, 預設繼承標準基類Object.
每個類都可以包含一個main()靜態方法, 用於單元測試.
繼承是對類的複用, 函數內使用super調用基類的相同方法, 區分遞迴.
衍生類別中可以添加新的方法, 對基類進行擴充.

代碼:

/** * 繼承 * <p/> * Created by wang on 15/8/7. */class Cleaner {    private String s = "Cleaner";    public static void main(String[] args) {        Cleaner x = new Cleaner();        x.dilute().apply().scrub();        System.out.println(x);    }    public void append(String a) {        s += a;    }    public Cleaner dilute() {        append(" dilute");        return this;    }    public Cleaner apply() {        append(" apply");        return this;    }    public Cleaner scrub() {        append(" scrub");        return this;    }    @Override    public String toString() {        return s;    }}class Detergent extends Cleaner {    public static void main(String[] args) {        Detergent d = new Detergent();        ((Detergent) d.dilute().apply()).scrub().foam();        System.out.println(d);    }    @Override    public Detergent scrub() {        append(" Detergent: scrub()");        super.scrub();        return this;    }    public Detergent foam() {        append(" foam");        return this;    }}public class Disinfectant extends Detergent {    public static void main(String[] args) {        Disinfectant d = new Disinfectant();        ((Disinfectant) d.dilute().apply()).scrub().sterilize();        System.out.println(d);        Detergent.main(args);        Cleaner.main(args);    }    @Override    public Disinfectant scrub() {        append(" Disinfectant: scrub()");        super.scrub();        return this;    }    public Disinfectant sterilize() {        append(" sterilize");        return this;    }}/** * Output: Cleaner dilute apply Disinfectant: scrub() Detergent: scrub() scrub sterilize Cleaner dilute apply Detergent: scrub() scrub foam Cleaner dilute apply scrub */

在繼承中, 帶參數的構造器, 必須在匯出類中第一個被調用(super), 否則報錯.

/** * 帶參數的構造器 * <p/> * Created by wang on 15/8/8. */class Game {    Game(int i) {        System.out.println("Game Constructor:" + i);    }}class BoardGame extends Game {    BoardGame(int i) {        super(i);        System.out.println("BoardGame Constructor:" + i);    }}public class Chess extends BoardGame {    public Chess() {        super(11);        System.out.println("Chess Constructor");//        super(11); // 報錯    }    public static void main(String[] args) {        new Chess();    }}/** * 報錯: 對super的調用必須是建構函式中的第一個語句 */

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

聯繫我們

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