標籤:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 多態類比移動硬碟和隨身碟{ class Program { static void Main(string[] args) { //用多態來實現隨身碟,Mp3,移動硬碟和電腦的對接,讀取寫入資料。 MobileTool mt = new UDisk(); Computer cpu = new Computer(); cpu.CpuRead(mt); cpu.CpuWrite(mt); Console.ReadKey(); } /// <summary> /// 抽象的父類 /// </summary> public abstract class MobileTool { public abstract void Read(); public abstract void Write(); } public class UDisk : MobileTool { public override void Read() { Console.WriteLine("隨身碟讀取成功"); } public override void Write() { Console.WriteLine("隨身碟寫入成功"); } } public class Mp3Disk : MobileTool { public override void Read() { Console.WriteLine("Mp3讀取成功"); } public override void Write() { Console.WriteLine("Mp3寫入成功"); } public void PlayMuisc() { Console.WriteLine("Mp3自己可以播放音樂"); } } public class MobileDisk : MobileTool { public override void Read() { Console.WriteLine("移動硬碟讀取成功"); } public override void Write() { Console.WriteLine("移動硬碟寫入成功"); } } public class Computer { public void CpuRead(MobileTool mt) { mt.Read(); } public void CpuWrite(MobileTool mt ) { mt.Read(); } } }}
在computer抓取父類的方法有多種:可以方法中傳遞參數抓取,可以通過建構函式,也可以通過屬性來抓取。
static void Main(string[] args) { MobileTool mt = new UDisk(); Computer cpu = new Computer(); cpu.Mt = mt; cpu.CpuRead(); cpu.CpuWrite(); Console.ReadKey(); } public class Computer { private MobileTool _mt; internal MobileTool Mt { get { return _mt; } set { _mt = value; } } public void CpuRead() { Mt.Read(); } public void CpuWrite() { Mt.Read();
用多態來實現隨身碟,Mp3,移動硬碟和電腦的對接,讀取寫入資料。