练习:C# -- 多态
2016-06-19 17:15
357 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 多态 { class Program { static void Main(string[] args) { /* 练习: 真的鸭子嘎嘎叫 木头鸭子吱吱叫 橡胶鸭子唧唧叫 */ RealDark rrd = new RealDark(); WoodenDark wd = new WoodenDark(); RubberDark rd = new RubberDark(); Dark[] d = { rrd, wd, rd }; for (int i = 0; i < d.Length; i++) { d[i].Bark(); } Console.ReadLine(); /* 练习: 经理10点打卡 员工9点打卡 程序员不打卡 */ Employee em = new Employee(); Manager ma = new Manager(); Programmer pr = new Programmer(); Employee[] ee = { em, ma, pr }; for (int i = 0; i < ee.Length; i++) { ee[i].daka(); } Console.ReadLine(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 多态 { public class Dark { public virtual void Bark() { Console.WriteLine("我是鸭子"); } } public class RealDark : Dark { public override void Bark() { Console.WriteLine("真的鸭子嘎嘎叫~"); } } public class WoodenDark : Dark { public override void Bark() { Console.WriteLine("木头鸭子吱吱叫~"); } } public class RubberDark : Dark { public override void Bark() { Console.WriteLine("橡胶鸭子唧唧叫~"); } } public class Employee { public virtual void daka() { Console.WriteLine("员工9点打卡"); } } public class Manager : Employee { public override void daka() { Console.WriteLine("经理10点打卡"); } } public class Programmer : Employee { public override void daka() { Console.WriteLine("程序员不打卡"); } } }
相关文章推荐
- C# 参考之转换关键字:operator、explicit与implicit
- C# 使用IEnumerable,yield 返回结果,同时使用foreach时,在循环内修改变量的值无效(二)
- C#属性和字段
- C# List<T>排序总结
- C#操作字符串方法总结
- C#快速生成数据数组
- C#中的InitializeComponent()方法
- C#开发Windows服务
- c#datetime 类型数据操作
- win7 C#程序调用 System.Speech.Synthesis 提示 No voice installed on the system
- 5 给我们的c#程序添加注释
- 深入理解C#委托及原理
- C#委托与事件学习笔记
- 【C#】第3章补充(一)如何在WPF中绘制正弦曲线
- 【C#】第3章学习要点(三)--常用类和结构的用法
- 【C#】第3章学习要点(二)自定义类和结构
- C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
- CSharpGL(27)讲讲清楚OpenGL坐标变换
- C#最短路径算法demo
- C#访问修饰符