多态综合案例
- 模拟电脑与外部移动设备的关系
- 创建三个类:电脑类,U 盘类,移动硬盘类。
- 模拟外部存储设备插入电脑后,电脑对二者的存取操作。
//1.创建一个接口IUSB,用于写入和读取数据. interface IUSB { /// <summary> /// 读取移动设备中的数据. /// </summary> void Read(); /// <summary> /// 往移动硬盘中写入数据. /// </summary> void Write(string content); } //2.创建电脑类. Computer.cs class Computer { private string brand; public IUSB USB_1; public IUSB USB_2; public string Brand { get { return brand; } set { brand = value; } } public Computer(string brand) { this.brand = brand; } public void Start() { Console.WriteLine("{0}品牌的电脑正在开机。", brand); } public void End() { Console.WriteLine("{0}品牌的电脑正在关机。", brand); } } //3.创建移动硬盘父类. Disk.cs class Disk { private string brand; public string Brand { get { return brand; } set { brand = value; } } public Disk(string brand) { this.brand = brand; } } //4.创建子类U盘. UDisk.cs class UDisk:Disk,IUSB { private string content; public UDisk(string brand) :base(brand) { } public void Read() { Console.WriteLine("{0}读取数据{1}", Brand, content); } public void Write(string content) { this.content += content; Console.WriteLine("{0}存入数据{1}",Brand,content); } } //5.创建子类硬盘. HardDisk.cs class HardDisk:Disk,IUSB { private string content; public HardDisk(string brand) :base(brand) { } public void Read() { Console.WriteLine("{0}读取数据{1}", Brand, content); } public void Write(string content) { this.content += content; Console.WriteLine("{0}存入数据{1}", Brand, content); } } //6.主程序测试. Program.cs class Program { static void Main(string[] args) { UDisk u1 = new UDisk("金士顿32GB"); HardDisk h1 = new HardDisk("三星500GB"); Computer c1 = new Computer("华硕"); c1.Start(); c1.USB_1 = u1; c1.USB_1.Write("Bong!"); c1.USB_1.Write("ShaKaLaKa!"); c1.USB_1.Read(); c1.USB_2 = h1; c1.USB_2.Write("dubdublabala!"); c1.USB_2.Read(); c1.End(); Console.WriteLine(); Computer c2 = new Computer("戴尔"); c2.Start(); c2.End(); Console.ReadKey(); } }