用多态来实现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安装的方式,简单易行. ...
随机推荐
- scanf和cin的差异
scanf和cin的差异 引例:http://www.cnblogs.com/shenben/p/5516996.html 大家都知道,在C++中有两种输入.输出方式—scanf和cin,但是,它们之 ...
- Linux内核启动
Linux内核启动过程概述 Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多.毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的.而且直到现在,这 ...
- POJ2289-Jamie's Contact Groups-二分图多重匹配-ISAP
注意POJ数组越界可能返回TLE!!! 网络流的maxn大小要注意 其他没什么了 裸二分答案+isap乱搞 不过复杂度没搞懂 V=1e3 E = 1e5 那ISAP的O(V^2E)怎么算都不行啊 /* ...
- VC6.0和VS2010转换时经常遇到的问题
这是最近总遇到的,等以后再遇到时慢慢添加进来 1.从1.1更新为2.1,编译“min”: 找不到标识符 解决方法:加上#include "minmax.h" 2.c:\docume ...
- 学习笔记——Maven实战(五)自动化Web应用集成测试
自动化集成测试的角色 本专栏的上一篇文章讲述了Maven与持续集成的一些关系及具体实践,我们都知道,自动化测试是持续集成必不可少的一部分,基本上,没有自动化测试的持续集成,都很难称之为真正的持续集成. ...
- C# Winform实现炫酷的透明动画界面
做过.NET Winform窗体美化的人应该都很熟悉UpdateLayeredWindow吧,UpdateLayeredWindow可以实现窗体的任意透明,效果很好,不会有毛边.不过使用这个API之后 ...
- [wikioi 1418]铃仙•优昙华院稻叶(东方幻想乡系列模拟赛)(树上递推)
题目:http://www.wikioi.com/problem/1418/ 分析: 一看就肯定是树上的递推 设f[i][j][k]表示第i秒在k点(从j点走过来的)的概率 则f[i][j][k]=f ...
- Memcached——非关系型数据库分布式处理
Memcached登录校验应用: MMCacheWriter.cs类 using Memcached.ClientLibrary; using System; using System.Collect ...
- log4net将日志进行分类,保存到不同的目录当中
1.新建Logs的Class类:代码如下: public class ApiLogs { public static int Log_Level { get; set; } private stati ...
- hdu3966 树链剖分+成段更新
给你n个点,m条边,p次操作.n个点相连后是一棵树.每次操作可以是x 到 y 增加 z,或者减z,或者问当前点的值是多少. 可以将树分成链,每个点在线段树上都有自己的点,然后线段树成段更新一下. #p ...