.net 多态初探
来源:互联网 发布:允儿好看还是js卡好看 编辑:程序博客网 时间:2024/05/16 06:40
今天照着书上的例子尝试了一下多态的神奇,慢慢的找到了一些感觉。
今后还需要不断的体会这种精髓。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;namespace ConsoleApplication{ class Program { static void Main(string[] args) { LoadManager lm = new LoadManager(); lm.LoadFiles(new WordFile()); lm.LoadFiles(new JPGFile()); lm.OpenAllFiles(); lm.OpenFile(lm.Files[0]); Console.ReadLine(); } } /// <summary> /// 定义文件类型的枚举 /// </summary> enum FileType { doc, txt, jpg, gif } /// <summary> /// 文件打开接口,由具体的文件类负责实现 /// </summary> interface IFileOpen { void Open(); } /// <summary> /// 抽象类 文件类,包含了文件打开的接口 /// </summary> abstract class Files : IFileOpen { private FileType fileType = FileType.doc; public FileType FileType { get; set; } public abstract void Open(); } /// <summary> /// 文档类,继承了文件类,并定义了关于文档相关的一些方法 /// </summary> abstract class DocFile : Files { public int GetPagesCount() { return 123; } } /// <summary> /// 图片类 继承了文件类,并定义了图片相关的方法 /// </summary> abstract class ImageFile : Files { public void ZoomIn() { //方法的实现 } } /// <summary> /// 具体的文档类,需要重写open方法 /// </summary> class WordFile : DocFile { public override void Open() { Console.WriteLine("open a doc file"); } } /// <summary> /// 具体的图片类,也需要重写open方法 /// </summary> class JPGFile : ImageFile { public override void Open() { Console.WriteLine("open a jpg file"); } } //文件管理类 class LoadManager { private List<Files> files = new List<Files>(); public List<Files> Files { get { return files; } set { files = value; } } //读取资料 public void LoadFiles(Files f) { files.Add(f); } //打开所有资料 public void OpenAllFiles() { foreach (var f in files) { f.Open(); } } //打开资料,负责调用具体文件的open方法 public void OpenFile(IFileOpen f) { f.Open(); } public FileType GetFileType(string filename) { return FileType.gif; } }}
- .net 多态初探
- .NET初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- ASP.NET ViewState 初探
- 黑马程序员---集合框架之Map集合重点盲点总结
- VS2012下基于Glut OpenGL绘制点(添加设置点大小)示例程序:
- Extjs中三种不同的数据提交方式
- C语言程序设计课后作业13
- JDBC入门知识
- .net 多态初探
- phpstorm xdebug apache(调试)
- 软件工程
- java虚拟机的运行机理
- 正则表达式常用实例
- Android UI控件三
- QQ2013协议分析(一)准备工作
- Opencv通过摄像头画框
- python 重定向shell执行输出