溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java裝飾器怎么寫

發(fā)布時間:2022-01-11 17:26:12 來源:億速云 閱讀:121 作者:iii 欄目:大數據

這篇文章主要介紹了Java裝飾器怎么寫的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java裝飾器怎么寫文章都會有所收獲,下面我們一起來看看吧。

////    模擬咖啡//    1.抽象組件:需要裝飾的抽象對象(接口或者抽象父類)//    2.具體組件:需要裝飾的對象//    3.抽象裝飾類:包含了對抽象組件的引用以及裝飾著共有的方法//    4.具體裝飾類:被裝飾的對象public class TestDecoretorTwo {public static void main(String[] args) {Drink coffee = new coffee();Drink suger = new Suger(coffee);System.out.println(suger.cost() + "--->" + suger.Info());Drink milk = new Milk(coffee);System.out.println(milk.cost() + "--->" + milk.Info());Drink milk1 = new Milk(suger);System.out.println(milk1.cost() + "--->" + milk1.Info());

    }

}//    1.抽象組件    interface Drink{int cost();String Info();
    }     //    2.具體組件:     class coffee implements Drink{String name="原味咖啡";public int cost() {return 10;
        }@Override        public String Info() {return name;
        }
    }//    3.抽象裝飾類:    class Decorate implements Drink{//對抽象組件的引用        private Drink drink;public Decorate(Drink drink) {//這里是一個構造器(this)            this.drink = drink;
        }@Override        public int cost() {return this.drink.cost();
        }@Override        public String Info() {return this.drink.Info();
        }
    }//    4.具體裝飾類1:     class Milk extends Decorate{public Milk(Drink drink) {//這里是一個構造器,(super)            super(drink);
        }@Override        public int cost() {return super.cost()*4;
        }@Override        public String Info() {return super.Info()+"加入了牛奶";
        }
    }//    4.具體裝飾類2:    class Suger extends Decorate{public Suger(Drink drink) {super(drink);
        }@Override        public int cost() {return super.cost()*2;
        }@Override        public String Info() {return super.Info()+"加入了蔗糖";
        }
    }

輸出結果

20--->原味咖啡加入了蔗糖
40--->原味咖啡加入了牛奶
80--->原味咖啡加入了蔗糖加入了牛奶

關于“Java裝飾器怎么寫”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java裝飾器怎么寫”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI