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
| using System; using System.Collections.Generic; using System.Text;
namespace ConsoleApplication1 { abstract class Vehicle { protected Engine e;
public abstract void Show();
public abstract void InstallEngine(Engine e); }
class RacingCar : Vehicle { public override void Show() { Console.WriteLine("跑车"); e.Show(); }
public override void InstallEngine(Engine e) { this.e = e; } }
class Tractor : Vehicle { public override void Show() { Console.WriteLine("拖拉机"); e.Show(); }
public override void InstallEngine(Engine e) { this.e = e; } }
abstract class Engine { public abstract void Show(); }
class RacingCarEngine : Engine { public override void Show() { Console.WriteLine("跑车引擎"); } }
class TractorEngine : Engine { public override void Show() { Console.WriteLine("拖拉机引擎"); } }
class Client { public static void Main() { Vehicle v = new RacingCar(); v.InstallEngine(new RacingCarEngine()); v.Show();
v = new Tractor(); v.InstallEngine(new TractorEngine()); v.Show();
Console.Read(); } } }
|