首页 > 代码库 > 多态 模拟 移动硬盘 插入电脑 读写,方法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属性赋值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。