c#多态练习(不同移动设备插入)
题目:插入不同设备mp3\mp4\移动硬盘,电脑自动识别读写。视频位置https://www.bilibili.com/video/BV1FJ411W7e5?p=143

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvCook;
using System.Collections;
using System.Diagnostics;
using System.IO;
namespace test
{
class Program
{
static void Main(string[] args)
{
//两种写法,第一种是字段赋值,耦合度最低,推荐
Computer cm = new Computer();
Mp3 mp3 = new Mp3();
cm.Md =mp3; //将子类装入父类
cm.CpuReader();
//第二种函数传入
cm.CpuWriter(new Mp3());//参数是父类,但是可以传子类,里式转换
Console.ReadKey();
}
}
public abstract class MobileDevice //抽象类
{
public abstract void Reader();
public abstract void Writer();
}
public class Mp3 : MobileDevice
{
public override void Reader()
{
Console.WriteLine("mp3的写");
}
public override void Writer()
{
Console.WriteLine("mp3的读");
}
public void PlayMusic()
{
Console.WriteLine("mp3正在播放音乐");
}
}
public class Udisk : MobileDevice
{
public override void Reader()
{
Console.WriteLine("udisk的写");
}
public override void Writer()
{
Console.WriteLine("udisk的读");
}
}
public class MobileDisk : MobileDevice
{
public override void Reader()
{
Console.WriteLine("移动硬盘的写");
}
public override void Writer()
{
Console.WriteLine("移动硬盘的读");
}
}
public class Computer
{
//获得父类,1.可字段直接设置/构造函数赋值
private MobileDevice _md;
public MobileDevice Md { get => _md; set => _md = value; }
public void CpuReader()
{
Md.Reader();
}
//2.函数传入父类
public void CpuWriter( MobileDevice md)
{
Md.Writer();
}
}
}

浙公网安备 33010602011771号