Java 中的繼承的簡單例子(super關鍵字)
阿新 • • 發佈:2018-10-31
class Cleanser{ private String s="Cleanser"; public void append(String a){s+=a;} public void dilute(){append("dilute()");} public void apply(){append("apply()");} public void scrub(){append("scrub()");} public String toString(){return s;} public static void main(String[]args){ Cleanser x=new Cleanser(); x.dilute();x.apply();x.scrub(); System.out.println(x); } } public class Detergent extends Cleanser{ public void scrub(){ append("Detergent.scrub()"); super.scrub(); } public void foam(){ append("foam()"); } public static void main(String[] args){ Detergent x=new Detergent(); x.dilute(); x.apply(); x.scrub(); x.foam(); System.out.println(x); System.out.print("Testing base class:"); Cleanser.main(args); } } /* * 在Detergent類中,並不能直接呼叫scrub(),因為這樣做將會產生遞迴,而這並不是你所期望的。 * 為解決此問題,Java用super關鍵字表示超類的意思,當前類就是從超類繼承來的。 */
輸出:
Cleanserdilute()apply()Detergent.scrub()scrub()foam()
Testing base class:Cleanserdilute()apply()scrub()