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

Posted 影落明湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态 模拟 移动硬盘 插入电脑 读写,方法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属性赋值的主要内容,如果未能解决你的问题,请参考以下文章

移动硬盘在苹果电脑上无法识别

java 如何将方法作为传参--多态

手机怎么检测u盘的读写速度?

Python_day8_面向对象(多态成员修饰符类中特殊方法对象边缘知识)异常处理之篇

接口的多态使用; 接口应用实例:U盘打印机可以使用共同的USB接口,插入到电脑上实现各自的功能。

怎么检测U盘读写速度 检测U盘读写速度的方法