用多态来实现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();
用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据。的更多相关文章
- VMware 中如何打开U盘弹出U盘或者移动硬盘的(两种方法)
1.U盘如下,插入后都是直接在win里面显示的 2.选择连接u盘 3.u盘就可以在虚拟机里面显示了 4.弹出则选择断开连接 扩展:如果无效:请参考这种方法 (给虚拟机分配一个临时硬盘,然后设置这个临时 ...
- 在CentOS 6.x中支持exfat格式的U盘(移动硬盘)
参考资料:http://linux.cn/article-1503-1.html CentOS系列一直没有默认支持使用exfat格式的大容量U盘(移动硬盘),但可以通过添加fuse-exfat模块来支 ...
- Mac技巧之让U盘、移动硬盘在苹果电脑和Windows PC都能识别/读写,且支持4GB大文件:exFAT格式
如果您的 U 盘.移动硬盘既要用于 PC 又要用于苹果电脑,Mac OS X 系统的 HFS+ 和 Windows 的 NTFS 格式显然都不行……HFS+ 在 Windows 下不识别,NTFS 格 ...
- 解决windows server 2003不认U盘或移动硬盘
解决windows server 2003不认U盘或移动硬盘1.进入命令提示符环境(也就是DOS) 2.进入DISKPART程序 3.输入AUTOMOUNT ENABLE指令 4.OK,下次USB硬盘 ...
- 用U盘与移动硬盘制作WIN7启动盘(亲自实践)
昨晚帮一个娃娃用移动硬盘里面的一个分区帮他制作成一个win7系统盘,为了以后万一换系统的时候方便.我自己有一个U盘坐的启动盘,移动硬盘没有倒腾过,看网上N多都是相互抄,制作都是WINPE系统的,相当蛋 ...
- Linux或树莓派3——挂载U盘、移动硬盘并设置rwx权限
话说最近在树莓派上搭建了一个owncloud,因为树莓派的存储空间有限,就插了个16G的U盘,然后设置成开机自动挂载.这里稍微注意一下的是U盘的格式最好不要NTFS,因为一般情况下NTFS格式的文件系 ...
- 树莓派挂载和卸载U盘或移动硬盘
通常我们在 /mnt 或 /media 目录下新建一个目录udisk作为挂载点 sudo mkdir /mnt/udisk 1.手动挂载: 挂载命令: sudo mount -o uid=pi,gid ...
- XP禁用了U盘和移动硬盘方法
会不会是你XP禁用了U盘和移动硬盘下面这些是任何禁用U盘的!你自己反着试下嘛!方法一,BIOS设置法(快刀斩乱麻法) 进入BIOS设置,选择“Integrated Peripherals”选项,展开后 ...
- CentOS提示::unknown filesystem type 'ntfs'自动挂载NTFS分区的U盘或者移动硬盘
CentOS默认源里没有NTFS-3G,想要添加ntfs支持,无非是自己下载编译安装或者加源yum安装.重新安装了一个CentOS7,用的是添加aliyun的epel源来yum安装的方式,简单易行. ...
随机推荐
- [3]MVC3中使用Telerik(转)
ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-metadata-a ...
- The Linux Storage Stack Diagram
相关文章: 如何提高Linux下块设备IO的整体性能?
- SDRAM 学习(三)之command
command 模块总述 SDRAM 的 command 模块的内容包括如下: 1.对初始化请求.配置模式寄存器.读/写.刷新.预充电等命令的一个优先级的控制. 2.对命令执行时间进行控制,依据如图1 ...
- Maximal Square
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...
- Linux 图形化操作
//Linux图形化操作 #include <stdio.h> #include <stdlib.h> #include <string.h> #include & ...
- Android Studio介绍
参考资料:http://www.cnblogs.com/smyhvae/p/4390905.html 第一次使用Android Studio时你应该知道的一切配置 as是一种不错的开发Androi ...
- LeetCode 334 Increasing Triplet
这个题是说看一个没有排序的数组里面有没有三个递增的子序列,也即: Return true if there exists i, j, k such that arr[i] < arr[j] &l ...
- 深入探索Java 8 Lambda表达式
2014年3月,Java 8发布,Lambda表达式作为一项重要的特性随之而来.或许现在你已经在使用Lambda表达式来书写简洁灵活的代码.比如,你可以使用Lambda表达式和新增的流相关的API,完 ...
- Android四大布局及其主要属性
布局: <LinearLayout></LinearLayout> <RelativeLayout></RelativeLayout> <Fram ...
- WP&Win10开发: RichTextBlock实现富文本并处理换行
思路:1.构建字典.2.在字符串中匹配字典的key,将匹配到的key转换成对应的value3.将替换后的字符串,转化成xaml形式,加载该xaml以实现富文本. 代码如下: private Parag ...