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的調用必須是建構函式中的第一個語句 */
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。