C#: 抽象类与抽象方法
1.代码
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 for (int i = 1; i < 10; i++) 6 { 7 if (i % 3 == 1) 8 { 9 StorageDevice storge1 = new Upan("sandisk--" + i.ToString()); 10 storge1.Inputdevice(); 11 storge1.WriteDataToDevice(); 12 } 13 else if (i % 3 == 2) 14 { 15 StorageDevice storge2 = new YingPan("westdata--" + i.ToString()); 16 storge2.Inputdevice(); 17 storge2.WriteDataToDevice(); 18 } 19 else if (i % 3 == 0) 20 { 21 StorageDevice storge3 = new MobliePhone("iphone--" + i.ToString()); 22 storge3.Inputdevice(); 23 storge3.WriteDataToDevice(); 24 } 25 } 26 Console.ReadKey(); 27 } 28 } 29 30 abstract class StorageDevice 31 { 32 public abstract void Inputdevice(); 33 public abstract void WriteDataToDevice(); 34 } 35 36 class Upan : StorageDevice 37 { 38 public Upan(string name) 39 { 40 this.Name = name; 41 } 42 43 private string Name; 44 public override void Inputdevice() 45 { 46 Console.WriteLine("U pan ({0}) input the computer.....", Name); 47 } 48 49 public override void WriteDataToDevice() 50 { 51 Console.WriteLine("U pan ({0}) write data.....", Name); 52 } 53 } 54 55 class MobliePhone : StorageDevice 56 { 57 private string Name; 58 public MobliePhone(string name) 59 { 60 this.Name = name; 61 } 62 public override void Inputdevice() 63 { 64 Console.WriteLine("Mobile Phone ({0}) input the computer....", Name); 65 } 66 public override void WriteDataToDevice() 67 { 68 Console.WriteLine("Mobile Phone ({0}) write data....", Name); 69 } 70 } 71 72 class YingPan : StorageDevice 73 { 74 public YingPan(string name) 75 { 76 this.Name = name; 77 } 78 public string Name { get; private set; } 79 80 public override void Inputdevice() 81 { 82 Console.WriteLine("Ying pan ({0}) input the computer...", Name); 83 } 84 public override void WriteDataToDevice() 85 { 86 Console.WriteLine("Ying pan ({0}) write data...", Name); 87 } 88 }
2. 运行结果: