类(2):多态(例子)
来源:互联网 发布:轩辕剑光武进阶数据 编辑:程序博客网 时间:2024/06/05 15:00
(1)override关键字实现多态—子类重写父类中virtual关键字的的方法(看例子)。
(2)多层继承中也可以实现多态.即,B类继承A类,C类继承B类(看例子)。
不管继承了多少层,都可以在子类中对父类中已经重写的方法继续进行重写,即如果父类方法用override修饰,如果子类继承了该方法,也可以用override修饰,多层继承中的多态就是这样实现的。要想终止这种重写,只需重写方法时用sealed关键字进行修饰即可。
(3)abstract-override实现多态
让我们通过例子来更深刻的理解:
例子:
(1)
namespace 多态{ class Fruit { public virtual void IFruit() { Console.WriteLine("学敏,我是水果"); } } class Apple : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是苹果"); } } class Pear : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是大鸭梨"); } } class Program { static void Main(string[] args) { Fruit [] fruit=new Fruit [3]; fruit [0]=new Fruit(); fruit [1]=new Apple (); fruit [2] = new Pear(); for (int i=0;i<fruit.Length ;i++) { fruit[i].IFruit (); } } }}
运行结果:
(2)
namespace 多态2{ class Fruit { public virtual void IFruit() { Console.WriteLine("学敏,我是水果"); } } class Apple : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是大苹果"); } } class RedApple : Apple { public override void IFruit() { Console.WriteLine("学敏,我是红苹果"); } } class Program { static void Main(string[] args) { Fruit[] fruit = new Fruit[3]; fruit [0]=new Fruit() ; fruit [1]=new Apple() ; fruit [2]=new RedApple() ; for (int i = 0; i < fruit.Length; i++) { fruit[i].IFruit(); } } }}
运行结果:
(3)
namespace 多态3{ abstract class Fruit { public abstract void IFruit(); } class Apple : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是苹果"); } } class Pear : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是大鸭梨"); } } class yellowPear : Fruit { public override void IFruit() { Console.WriteLine("学敏,我是黄梨"); } } class Program { static void Main(string[] args) { Fruit[] fruit = new Fruit[3]; fruit[0] = new Apple(); fruit[1] = new Pear(); fruit[2] = new yellowPear(); for (int i = 0; i < fruit.Length; i++) { fruit[i].IFruit(); } } }}
运行结果:
- 类(2):多态(例子)
- 多态(二)--例子
- mustache例子(2)
- plsql的例子(2)
- C#方法(2)例子
- C++设计例子(2)
- (例子)PHP 数据抓取小例子
- 类代理的具体例子(2【接口AdviceTest】)
- 类模板的简单例子(作业)
- 抽象类的例子(151)
- 几个 WMI 的例子(初级) - 2
- 几个 WMI 的例子(初级) - 2
- occi的例子2(代码)
- JSF学习(2)--提交表单例子
- QT(2)Widget的小例子
- ibatis例子(四) iterate 2
- struts2完整的例子(2)
- VC小例子(整理)2
- vi常用命令整理
- android通过webview+jquery设计界面
- Asp.Net 构架(HttpModule 介绍) - Part.3
- HTML、CSS和JavaScript学习五(案例分析三表格排序及颜色变换)
- POJ 1061 青蛙的烦恼
- 类(2):多态(例子)
- 小心浏览器的Cookie文件
- 同步线程2(Monitor)
- 关于jsp连接sql server2005 写入数据库中文乱码的问题
- struts2之动态方法调用
- hdu1052 田忌赛马 贪心正确性证明
- ajax(十四课)
- 遇到的参数化查询问题
- html的meta标签解释