首页 > 代码库 > 多态 模拟 移动硬盘 插入电脑 读写,方法1传参,方法2属性赋值

多态 模拟 移动硬盘 插入电脑 读写,方法1传参,方法2属性赋值

//多态 模拟 移动硬盘 插入电脑 读写,方法1传参,方法2属性赋值using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            //多态 模拟 移动硬盘 插入电脑 读写            //MobileDisk md = new MobileDisk();//父类抽象类不能实例化,所以实例化子类            //UDisk ud = new UDisk();            //Mp3 mp = new Mp3();            MobileStorage mp = new Mp3();            Computer cpu = new Computer();//通过属性拿到父类,在外面不能传参数,采用赋值            cpu.Ms = mp;//表示把插入的MP3赋值给电脑里面的Ms属性            //cpu.CpuRead(mp);            //cpu.CpuWrite(mp);            cpu.CpuRead();//采用属性赋值形式,不用传参数            cpu.CpuWrite();            Console.ReadKey();        }         }    /// <summary>    /// 抽象的父类,可移动存储    /// </summary>    public abstract class MobileStorage    {        public abstract void Read();        public abstract void Write();    }    public class MobileDisk : MobileStorage    {        public override void Read()//override可以重写抽象方法和虚方法        {            Console.WriteLine("移动硬盘在读取数据");        }        public override void Write()        {            Console.WriteLine("移动硬盘在写入数据");        }    }    public class UDisk : MobileStorage    {        public override void Read()        {            Console.WriteLine("U盘在读取数据");        }        public override void Write()        {            Console.WriteLine("U盘在写入数据");        }    }    public class Mp3 : MobileStorage    {        public override void Read()        {            Console.WriteLine("Mp3在读取数据");        }        public override void Write()        {            Console.WriteLine("Mp3在写入数据");        }        public void PlayMusic()        {            Console.WriteLine("MP3自己可以播放音乐");        }    }    public class Computer    {        //方法2,拿字段存传入的父类参数        private MobileStorage _ms;        public MobileStorage Ms//字段封装属性        {            get { return _ms; }            set { _ms = value; }        }        public void CpuRead()//方法1,想拿到父类,传参数进来就行,可以传子类进来        {            Ms.Read();//方法2,通过属性拿到父类,在外面不用传参数,采用赋值        }        public void CpuWrite()        {            Ms.Write();        }        //public void CpuRead(MobileStorage ms)//方法1,想拿到父类,传参数进来就行,可以传子类进来        //{        //    ms.Read();        //}        //public void CpuWrite(MobileStorage ms)        //{        //    ms.Write();        //}    }}

 

多态 模拟 移动硬盘 插入电脑 读写,方法1传参,方法2属性赋值