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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谈资不是这个p.eat();    这个p 是 private Person p; 吗?

  1. /**
  2. 装饰设计模式:增加原有类的功能
  3. **/
  4. class  RedoublePerson
  5. {
  6. public static void main(String[] args)
  7. {
  8.   Person p=new Person();
  9.   RePerson rp=new RePerson(p);
  10.   rp.reEat();
  11. }
  12. }
  13. class Person
  14. {
  15. public void eat ()
  16. {

  17.    System.out.println("吃饭");
  18. }
  19. }
  20. class RePerson//Person 类加强
  21. {
  22. private Person p;
  23. public RePerson(Person p)
  24. {
  25.     this.p=p;

  26. }
  27. public void reEat()
  28. {
  29.    System.out.println("开胃酒");
  30.    p.eat();
  31.    System.out.println("喝点营养汤");
  32.     System.out.println("抽一根烟");

  33. }
  34. }


复制代码

3 个回复

倒序浏览
是的,你在创建RePerson的时候传进去一个person,他里面用的p.eat()就是调用你传进去的person的方法。
回复 使用道具 举报
大自然的搬运工 发表于 2015-11-7 21:08
是的,你在创建RePerson的时候传进去一个person,他里面用的p.eat()就是调用你传进去的person的方法。 ...

谢谢,经兄台这一说我理解的更深了  就是new  那个传进去的p  谢谢了
回复 使用道具 举报
666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马