.Net学习笔记----2015-07-21(C#基础复习08,模拟移动硬盘U盘等)

    /// <summary>
    /// 由于不知道到用户插入的是什么设备,所以使用抽象类
    /// 含有每个设备都具备的读和写2个方法
    /// </summary>
    public abstract class DiskFather
    {
        public abstract void Read();
        public abstract void Write();
    }
    class MobileDisk : DiskFather
    {
        public override void Read()
        {
            Console.WriteLine("移动硬盘在读取数据");
        }

        public override void Write()
        {
            Console.WriteLine("移动硬盘在写入数据");
        }
    }
    class UDisk : DiskFather
    {
        public override void Read()
        {
            Console.WriteLine("U盘在读取数据");
        }

        public override void Write()
        {
            Console.WriteLine("U盘在写入数据");
        }
    }
    class MP3 : DiskFather
    {
        public void PlayMusic()
        {
            Console.WriteLine("MP3可以播放音乐");
        }
        public override void Read()
        {
            Console.WriteLine("MP3在读取数据");
        }

        public override void Write()
        {
            Console.WriteLine("MP3在写入数据");
        }
    }
    /// <summary>
    /// 电脑类
    /// </summary>
    class Cpu
    {
        public DiskFather DF
        { get; set; }
        public void CpuRead()
        {
            this.DF.Read();
        }
        public void CpuWrite()
        {
            this.DF.Write();
        }
    }
        static void Main(string[] args)
        {
            MobileDisk md = new MobileDisk();
            MP3 mp3 = new MP3();
            UDisk ud = new UDisk();

            Cpu cpu = new Cpu();
            //cpu.DF = md;//子类可以赋值给父类
            //cpu.CpuRead();
            //cpu.CpuWrite();

            //cpu.DF = mp3;
            //cpu.CpuRead();
            //cpu.CpuWrite();

            cpu.DF = ud;
            cpu.CpuRead();
            cpu.CpuWrite();

            Console.ReadKey();
        }
    }
时间: 2024-12-09 17:08:11

.Net学习笔记----2015-07-21(C#基础复习08,模拟移动硬盘U盘等)的相关文章

Linux学习笔记——2015/7/21

4.1.4 Linux常用命令-文件处理命令-链接命令 ln 生成链接文件 -s创建软链接 软链接:类似Windows快捷方式 注: 生成软链接文件  l开头   所有权限都是3个 rws 硬链接:   不能跨分区.不能针对目录使用.通过i节点识别 用户分三类 u g o 权限分三类 读 写 4.2.1 Linux常用命令-权限管理命令-权限管理命令chmod chmod  改变文件或目录权限 执行权限:所有用户.管理员root 语法:chmod [{ugoa}{+-=}{rwx}][文件或目录

【Ext.Net学习笔记】07:后续

程序员必看书籍(转载) C++: Prata<C++ Primer Plus>:基础,第一本书.(之前的版本也可,不过推荐最新的) Lippman<Inside C++ Object Model>:初级,加深语言层次上的理解.不过有点小老了.里面的cfront编译器早退出江湖好久了.思想值得学习 侯捷<STL源码剖析>:第三本书,中级,深入STL Vandevoorde<C++ Template>:第四本,中级,范式编程 罗剑锋<Boost>两本

APUE学习笔记:第一章 UNUX基础知识

1.2 UNIX体系结构 从严格意义上,可将操作系统定义为一种软件(内核),它控制计算机硬件资源,提供程序运行环境.内核的接口被称为系统调用.公用函数库构建在系统调用接口之上,应用软件即可使用公用函数库,也可使用系统调用.shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口 从广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并给予计算机以独有的特性(软件包括系统实用程序,应用软件,shell以及公用函数库等) 1.3  shell shell是一个命令行解

Linux 程序设计学习笔记----终端及串口编程基础之概念详解

转载请注明出处,谢谢! linux下的终端及串口的相关概念有: tty,控制台,虚拟终端,串口,console(控制台终端)详解 部分内容整理于网络. 终端/控制台 终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念. 1.终端 一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两种. 控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口.

nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node採用一个长期执行的进程 而php在apache中会产生多个进程 例如以下图所看到的: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.creat

Swift学习笔记(一):基础

一.常量 & 变量 //常量 let constantsTeam = 1 //变量 var variablesTeam = 2 尽可能使用常量,这样更清晰并且内存更不容易肾亏. 二.显示/隐式指定类型 //隐式 let inferredTeam = 3 //显式 let explicitTeam:Int = 4 三.字符串输出 //通过\(变量或常量名)来引用组合字符串 println("\(inferredTeam) is bigger than \(variablesTeam)!&q

Node.js学习笔记【3】NodeJS基础、代码的组织和部署、文件操作、网络操作、进程管理、异步编程

一.表 学生表 CREATE TABLE `t_student` ( `stuNum` int(11) NOT NULL auto_increment, `stuName` varchar(20) default NULL, `birthday` date default NULL, PRIMARY KEY  (`stuNum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 学生分数表 CREATE TABLE `t_stu_score` ( `id` int(11

nodejs学习笔记_nodejs和PHP在基础架构上的区别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明白node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node采用一个长期运行的进程 而php在apache中会产生多个进程 如下图所示: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.createSer

Murano Weekly Meeting 2015.07.21

会议时间: 2015.07.21 主持人: Kirill Zaitsev, core from Mirantis 会议摘要:  1.murano client和murano dashboard升级到yaql1.0.    slagun负责与mistral协调yaql1.0的升级问题,mistral需要一起升级. 2.OpenStack各个项目与olso的接口人. Project Liaison IRC Handle Cinder Jay Bryant jungleboyj Heat Thomas

【安全牛学习笔记】密钥交换、AIRCRACK-NG基础、AIRODUMP-NG排错

密钥交换                                             无线网络设计用于一组无线设备通信 关联到同一AP的设备共享无线信道 单播.广播.组播 安全特性要求不同 单播通信需要单独密钥加密通信双方流量 pairwise key: 对偶密钥 (PTK) 组播通信需要信任域内所有成员共享的同一密钥 group key: 组密钥(GTK) PMK 安全上下的顶级密钥 MK进行TLS-PRF加密得出PMK-----PTK 基于服务密钥 由上层身份验证方法服务器生成