码迷,mamicode.com
首页 > Windows程序 > 详细

C# 面向对象之多态

时间:2017-05-18 18:47:39      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:led   bsp   基类   nim   类的方法   c#   virt   派生类   sea   

由于子类继承类父类,那么子类就拥有相同的行为,但子类的行为有时需要相互区别

子类就需要覆写父类的方法来实现子类特有的行为,这样的技术在c#中就叫做多态。

多态就是相同类型的对象调用相同的方法却表现出不同的现象

 

使用virtual和override关键字实现重写方法

只有基类成员声明为virtual和abstract时才能被派生类重写

而如果子类想改变虚方法的实现行为,则必须使用override关键字

技术分享

技术分享

技术分享

技术分享

技术分享

最后执行结果为:

技术分享

 但是这样的代码存在一个问题

就是

Animal animal=new Animal ();

 这个样的话毫无意义,因为这里的基类是为子类提供公共成员

那么我们可以将基类创建为抽象类利用abstract关键字就可以防止这种情况发生。

阻止派生类重写虚成员


利用sealed关键字来实现

技术分享

如果在有个类来继承Horse并试图重写Voice方法就会收到错误信息

技术分享

使用新成员隐藏基类成员

利用new关键字来实现

技术分享

技术分享

技术分享

技术分享

 

C# 面向对象之多态

标签:led   bsp   基类   nim   类的方法   c#   virt   派生类   sea   

原文地址:http://www.cnblogs.com/lbonet/p/6874829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!