• 多态 模拟 移动硬盘 插入电脑 读写,方法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();
            //}
        }
    }
  • 相关阅读:
    Eclipse下Tomcat插件的安装
    Eclipse插件的安装方法
    tomcat 详解五 tomcat页面设置访问权限
    W3C XML Schema 教程
    vb.net向Excel中写入值
    用VB操作Excel的方法
    怎样用VB自动更新应用程序
    VB读写INI文件的四个函数以及相关API详细说明
    oracle数据库元数据SQL查询
    javascript JTimer_2.0 时间日历控件使用方法
  • 原文地址:https://www.cnblogs.com/blacop/p/5963057.html
Copyright © 2020-2023  润新知