開燈(面向對象復習)
設計一個台燈類(Lamp)其中台燈有燈泡類(Buble)這個屬性,還有開燈(on)這個方法
設計一個燈泡類(Buble),燈泡類有發亮的方法
其中有紅燈泡類(RedBuble)和綠燈泡類(GreenBuble)他們都繼承燈泡類(Buble)一個發亮的方法
請設計出一段代碼可以使台燈開啟燈泡發亮,並且保證替換不同種類的燈泡,台燈類代碼不被修改
public class Lamp { private Buble buble;//燈泡 public Buble getBuble() { return buble; } public void setBuble(Buble buble) { this.buble = buble; } /** * 通過父類Buble調用子類重寫父類的方法 * @param buble */ public void on(Buble buble){ if(buble instanceof RedBuble){ String r=buble.bright(); System.out.println("打開台燈"+r); }else if(buble instanceof GreenBuble){ String g=buble.bright(); System.out.println("打開台燈"+g); } } }
public abstract class Buble { public Buble(){ } public abstract String bright(); }
public class RedBuble extends Buble { //重寫父類抽象方法 public String bright(){ return "紅燈泡發亮"; } }
public class GreenBuble extends Buble{ //重寫父類抽象方法 public String bright(){ return "綠燈泡發亮"; } }
public class BubleTest { public static void main(String[] args){ Lamp lamp=new Lamp(); //父類引用指向子類對象 Buble red=new RedBuble(); Buble green=new GreenBuble(); lamp.on(green); } }
運行結果:
打開台燈綠燈泡發亮