C#的面向对象特性之多态
2015-08-25 01:59
357 查看
using System; using System.Collections; using System.Collections.Generic; namespace codeTest { class Program { static void Main(string[] args) { // C#的静态多态主要是通过overload来实现,主要有方法的重载和运算符的重载 A _A1 = new A() { number = 11 }; A _A2 = new A() { number = 21 }; _A1.SaidHello(); _A1.SaidHello(" World"); Console.WriteLine((_A1 + _A2).number); //C# 的动态多态主要通过 override 重写来实现 Human _humman1 = new Man(); Human _humman2 = new Woman(); _humman1.Run(); _humman2.Run(); Console.ReadLine(); } } class A { public int number { get; set; } public static A operator +(A a1, A a2) { A sum = new A(); sum.number = a1.number + a2.number; return sum; } public void SaidHello() { Console.WriteLine("Hello"); } public void SaidHello(string toWho) { Console.WriteLine(string.Format("Hello {0}", toWho)); } } class Human { public virtual void Run() { Console.WriteLine("human Run!"); } } class Man : Human { public override void Run() { Console.WriteLine("Man Run!"); } } class Woman : Human { public override void Run() { Console.WriteLine("Woman Run!"); } } }
相关文章推荐
- C# 基础从头来
- C#基础------递归
- C#创建windows服务的步骤
- csharp: SDK:CAPICOM
- C#操作xml文件
- C#基础练习题
- C#chart之PieChart
- C#创建windows程序小分析
- C# windows服务简介
- C#——await与async实现多线程异步编程
- C#——await与async实现多线程异步编程
- c# winform 使DataGridView的一些总结
- 使用WCF 命名管道 创建的局域网聊天
- C# 如何动态判断一个数的范围
- 编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试
- 编写高质量代码改善C#程序的157个建议——建议156:利用特性为应用程序提供多个版本
- C# 抽象工厂
- C# interface 接口理解
- 编写高质量代码改善C#程序的157个建议——建议155:随生产代码一起提交单元测试代码
- C#socket资料汇总