c#多态实战
来源:互联网 发布:叶诗文里约奥运会 知乎 编辑:程序博客网 时间:2024/06/13 22:57
多态 就是说同一个对象,在不同的场景有不同的行为,也就是说执行不同的代码。 当然这个不同的场景是指类的指针指向的实际对象是什么,那么就调用这个实际对象的方法。
在c#语言中 实现多态的方法有三种
1 重写父类的虚方法,
2 接口继承
3 抽象类继承
要是你能把下边的例子看懂了,说明你有一个很大的进步了。下边仅仅以重写父类的虚方法来说明一下多态。
using System;using System.Data;using System.Text;class programe{ public delegate void mydelgatemath(); static void Main(string[] arg) { try { baseClass tempFath ;baseClass fathobj = new baseClass() ;fathobj.say() ;sonclass sonobj = new sonclass() ; sonobj.say() ;son2class son2obj=new son2class() ;son2obj.say() ;tempFath = sonobj ;tempFath.say() ;tempFath = son2obj ;tempFath.say();Console.WriteLine("上边是学习,下边是多态实际例子,以及应用场景");baseClass[] famliys = new baseClass[3]{fathobj ,sonobj ,son2obj};foreach(baseClass o in famliys){ o.say() ;} } catch (Exception err) { Console.WriteLine(err.Message); } } public class baseClass {public baseClass(){Console.WriteLine("my name am【"+this.ToString()+"】老子出生了 不希望我儿子是跟屁虫,别我说啥他说啥。 ") ; } virtual public void say() {Console.WriteLine("老子说话了") ; } } public sealed class sonclass : baseClass{public sonclass(){} override public void say() {Console.WriteLine("儿子说话了") ; }}public sealed class son2class : baseClass{public son2class(){} override public void say() {Console.WriteLine("二儿子说话了") ; }}}把上边代码复制到cs文件中,运行结果如下 :
---------- run ----------=============== 运行C#程序 Write By cicnor===============my name am【programe+baseClass】老子出生了 不希望我儿子是跟屁虫,别我说啥他说啥。 老子说话了my name am【programe+sonclass】老子出生了 不希望我儿子是跟屁虫,别我说啥他说啥。 儿子说话了my name am【programe+son2class】老子出生了 不希望我儿子是跟屁虫,别我说啥他说啥。 二儿子说话了儿子说话了二儿子说话了上边是学习,下边是多态实际例子,以及应用场景老子说话了儿子说话了二儿子说话了=============== 程序结束 Copy cicnor 2001===============Output completed (0 sec consumed) - Normal Termination
- c#多态实战
- C# 插件构架实战
- C# 插件构架实战
- c#多线程ping实战
- C# 插件构架实战
- C#插件构架实战
- C#插件构架实战
- C#插件构架实战
- C# 插件构架实战
- C#插件构架实战
- C#插件构架实战
- C#3.0 实战迭代器
- c#开发activex实战
- C# 插件构架实战
- c# delegate实战
- C# 插件构架实战
- C# Redis实战(一)
- C# Redis实战(二)
- DM365的BSP源码分析-基于2.6.18内核
- 贪婪法
- 黑马程序员--网络通信UDP编程的总结及部分知识点查询
- 相似图片搜索的原理
- 应用程序尚未安装在你手机上 解决办法
- c#多态实战
- 黑马程序员---转载关于java泛型的详细介绍
- LCD 背光驱动板 PCB 40PIN
- shell输出格式化
- 写给我的2011(0)
- 写给我的2011(一)
- 写给我的2011(二)
- 2012年开发者该做的11件事
- android利用WebView与JavaScript交互的方法