多态性是指在一般类中定义的属性或操作被特殊类继承之后
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
子类中为满足自己的需要来重复定义某个方 法的不同实现——覆写 通过使用关键字override来覆写
public override bool Withdraw(…)
只有虚方法和抽象方法才能被覆写 要求: (三相同)
相同的方法名称 相同的参数列表 相同的返回值类型
Override & Overload比较
同一操作作用于不同的对象,可以有不同的解 释,产生不同的执行结果,这就是多态性。 多态性通过派生类覆写基类中的虚函数型方法 来实现。
多态性(2)
编译时的多态性
编译时的多态性是通过重载来实现的。对于非 虚的成员来说,系统在编译时,根据传递的参 数、返回的类型等信息决定实现何种操作。
运行时的多态性
多态性
是指在一般类中定义的属性或操作被特殊 类继承之后,可以具有不同的数据类型或表 现出不同的行为。 多态性的作用在于它允许我们开发灵活的 系统,我们只要指定什么应该发生,而不是 它应该怎样发生,以便获得一个易修改、易 变更的系统。
多态性(1)
面向对象程序设计中的重要概念多态性。
在运行时,可以通过指向基类的引用,来调用 实现派生类中的方法。
运行时的多态性就是指直到系统运行时,才根 据实际情况决定实现何种操作。 C#中,运行时的多态性通过覆写虚成员实现。
重载(Overload)
重载—类中定义的方法可能有不同的版本
public bool Withdraw(double amt, string name) public double Withdraw(double amt)
பைடு நூலகம்
特点
方法名必须相同 参数列表必须不相同 返回值类型可以不相同
虚拟函数
声明虚方法
使用virtual关键字 public virtual bool Withdraw(…);
调用虚方法,运行时将确定调用对象是什么 类的实例,并调用适当的覆写的方法。 虚方法可以有实现体
覆写(Override)
Items 位置 方法名 参数列表 返回值 Override 覆写 存在于继承关系的 类中 相同 相同 相同 Overload 重载 存在于同一类中 相同 必须不同 可以不相同
抽象方法
抽象方法是必须被派生类覆写的方法。 抽象方法是可以看成是没有实现体的虚方法 如果类中包含抽象方法,那么类就必须定义 为抽象类,不论是否还包含其它一般方法 publc abstract bool Withdraw(…);