首页 > Windows开发 > 详细

C# 面向对象之多态

时间:2017-05-18 18:34:32      阅读:319      评论:0      收藏:0      [点我收藏+]

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

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

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

 

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

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

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

技术分享

技术分享

技术分享

技术分享

技术分享

最后执行结果为:

技术分享

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

就是

Animal animal=new Animal ();

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

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

阻止派生类重写虚成员


利用sealed关键字来实现

技术分享

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

技术分享

使用新成员隐藏基类成员

利用new关键字来实现

技术分享

技术分享

技术分享

技术分享

 

C# 面向对象之多态

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!