多态

  封装,继承,多态被称为面向对象的三大基础特性,这其中,多态的实现主要通过的途径也是三个,虚方法,抽象类,接口。
  多态的定义: 多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(百度百科)。
  多态,表示不同的对象可用执行相同的动作,但要通过他们自己实现代码执行。
这里需要注意三点:
  • 第一,子类以父类的身份出现;
  • 第二,子类在工作时,以自己的方式实现;
  • 第三,子类以父亲的身份出现时,子类特有的属性和方法不可以使用;
关于实现多态,这里首先介绍虚方法和重写。为了使子类的实例完全接管来自父类的类成员,父类必须将该成员声明为虚拟的。这是通过在该成员的返回类型之前添加virtual关键字来实现。通常,虚拟的是方法,但其实除了字段不能是虚拟的,属性,事件和索引器都可以是虚拟的。尽管方法可以是虚拟的,但方法还是有方法体。可以实际做某些事情。子类可以选择使用override关键字,将父类实现替换为它自己的实现,这就是方法重写Override,或者叫做方法覆写。
实例:
现在,我们要举办一个动物运动会,来参加的有各种各样的动物,其中有一项是‘叫声比赛’,就是报名的动物挨个地叫出声来比赛。注意来报名的都是什么动物,我们并不知道。
 
 
 
 
 
这就是所谓的不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行;
        多态的原理是当方法被调用时,无论对象是否被转换为其父类,都只有位于对象继承链最末端的方法实现会被调用。也就是说,虚方法是按
照其运行时的类型进行动态绑定调用的.
 
 
posted @ 2020-03-08 17:59  溺水的鲨鱼  阅读(146)  评论(0编辑  收藏  举报