抽象类实现多态

using System;

namespace _13_电脑_移动硬盘_MP3
{
    class Program
    {
        static void Main(string[] args)
        {
            MobileStorage ms = new MobileDisk();
            Computer cpu = new Computer();
            cpu.Ms = ms; //对属性赋值

            cpu.CpuRead();
            cpu.CpuWrite();

            //Computer cpu = new Computer(); 
            //cpu.CpuRead(ms); 向方法中传入参数
            //cpu.CpuWrite(ms); 

            Console.ReadKey();

            //Console.WriteLine("Hello World!");
        }

        public abstract class MobileStorage
        {
            public abstract void Read();
            public abstract void Write();
        }

        public class MobileDisk: MobileStorage
        {
            public override void Read()
            {
                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
        //{
        //    public void CpuRead(MobileStorage ms)
        //    {
        //        ms.Read();
        //    }

        //    public void CpuWrite(MobileStorage ms)
        //    {
        //        ms.Write();
        //    }
        //}

        public class Computer
        {
            private MobileStorage _ms; //通过属性拿到父类

            public MobileStorage Ms { get => _ms; set => _ms = value; }

            public void CpuRead()
            {
                Ms.Read();
            }

            public void CpuWrite()
            {
                Ms.Write();
            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘诺西亚的火山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值