用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 多态模拟移动硬盘和U盘
{
    class Program
    {
        static void Main(string[] args)
        {
            //用多态来实现U盘,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("U盘读取成功");
            }
            public override void Write()
            {
                Console.WriteLine("U盘写入成功");
            }
        }
        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();

 

转载于:https://www.cnblogs.com/kangshuai/p/4707442.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值