Java項目案例之---開燈(面向對象復習)


開燈(面向對象復習)

   設計一個台燈類(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);

    }

}

 

運行結果:

打開台燈綠燈泡發亮


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM