A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fmi110 高级黑马   /  2015-9-20 22:07  /  266 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. package decorate.demo;

  2. public class RingPhoneDecorate extends PhoneDecorate {

  3.         public RingPhoneDecorate(Phone p) {
  4.                 super(p);
  5.         }
  6.         @Override
  7.         public void phone() {
  8.                 System.out.println("手机有彩铃啦~~");
  9.                 super.phone();
  10.         }
  11.        
  12. }

  13. package decorate.demo;

  14. public abstract class PhoneDecorate implements Phone {
  15.         private Phone p;
  16.         public PhoneDecorate(Phone p){
  17.                 this.p = p;
  18.         }
  19.         @Override
  20.         public void phone() {
  21.                 this.p.phone();
  22.         }

  23. }
  24. package decorate.demo;

  25. public class MusicPhoneDecorate extends PhoneDecorate {

  26.         public MusicPhoneDecorate(Phone p) {
  27.                 super(p);
  28.         }
  29.         @Override
  30.         public void phone() {
  31.                 System.out.println("手机可以听音乐啦~~");
  32.                 super.phone();
  33.         }
  34. }
  35. package decorate.demo;

  36. public class Test {

  37.         /**
  38.          * @param args
  39.          */
  40.         public static void main(String[] args) {
  41.                 Phone p = new PhoneImpl();
  42.                 p.phone();
  43.                 System.out.println("------------------------------");
  44.                 new MusicPhoneDecorate(p).phone();
  45.                 System.out.println("------------------------------");
  46.                 new MusicPhoneDecorate(new RingPhoneDecorate(p)).phone();
  47.         }

  48. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马