1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Class1 { public static void Main() { Person p = new Person("张三");
Ring r = new Ring(); EarRing er = new EarRing(); NeckLace nl = new NeckLace();
r.Decrate(p); er.Decrate(r); nl.Decrate(er); nl.Show(); Console.Read(); } }
class Person { string name;
public Person(string name) { this.name = name; }
public Person() { }
public virtual void Show() { Console.WriteLine("{0}拥有以上装饰物品", name); } }
class Decrator : Person { Person p;
public override void Show() { p.Show(); }
public void Decrate(Person p) { this.p = p; } }
class Ring : Decrator { public override void Show() { Console.WriteLine("戒指"); base.Show(); } }
class EarRing : Decrator { public override void Show() { Console.WriteLine("耳环"); base.Show(); } }
class NeckLace : Decrator { public override void Show() { Console.WriteLine("项链"); base.Show(); } } }
|