《多态性是指在一般类中定义的属性或操作被特殊类继承之后优秀PPT.ppt》由会员分享,可在线阅读,更多相关《多态性是指在一般类中定义的属性或操作被特殊类继承之后优秀PPT.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、多态性多态性 是是指指在在一一般般类类中中定定义义的的属属性性或或操操作作被被特特殊殊类类继继承承之之后后,可可以以具具有有不不同同的的数数据据类类型型或或表表现出不同的行为。现出不同的行为。多多态态性性的的作作用用在在于于它它允允许许我我们们开开发发敏敏捷捷的的系系统统,我我们们只只要要指指定定什什么么应应当当发发生生,而而不不是是它它应应当当怎怎样样发发生生,以以便便获获得得一一个易修改、易变更的系统。个易修改、易变更的系统。多态性(多态性(1)n n面对对象程序设计中的重要概念多态性。面对对象程序设计中的重要概念多态性。n n在运行时,可以通过指向基类的引用,来调在运行时,可以通过指向基
2、类的引用,来调用实现派生类中的方法。用实现派生类中的方法。n n同一操作作用于不同的对象,可以有不同的同一操作作用于不同的对象,可以有不同的说明,产生不同的执行结果,这就是多态性。说明,产生不同的执行结果,这就是多态性。n n多态性通过派生类覆写基类中的虚函数型方多态性通过派生类覆写基类中的虚函数型方法来实现。法来实现。多态性(多态性(2)n n编译时的多态性编译时的多态性n n编译时的多态性是通过重载来实现的。对于编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,依据传递非虚的成员来说,系统在编译时,依据传递的参数、返回的类型等信息确定实现何种操的参数、返回的类型等信息确定
3、实现何种操作。作。n n运行时的多态性运行时的多态性n n运行时的多态性就是指直到系统运行时,才运行时的多态性就是指直到系统运行时,才依据实际状况确定实现何种操作。依据实际状况确定实现何种操作。n nC#中,运行时的多态性通过覆写虚成员实现。中,运行时的多态性通过覆写虚成员实现。重载(重载(Overload)n n重载重载类中定义的方法可能有不同的版本类中定义的方法可能有不同的版本n npublic bool Withdraw(double amt,string name)public double Withdraw(double amt)n n特点特点n n方法名必需相同方法名必需相同n n
4、参数列表必需不相同参数列表必需不相同n n返回值类型可以不相同返回值类型可以不相同虚拟函数虚拟函数n n声明虚方法声明虚方法n n运用运用virtual关键字关键字 n npublic virtual bool Withdraw();n n调用虚方法,运行时将确定调用对象是什么调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。类的实例,并调用适当的覆写的方法。n n虚方法可以有实现体虚方法可以有实现体覆写(覆写(Override)n n子类中为满足自己的须要来重复定义某个方子类中为满足自己的须要来重复定义某个方法的不同实现法的不同实现覆写覆写n n通过运用关键字通过运用关
5、键字override来覆写来覆写n npublic override bool Withdraw()n n只有虚方法和抽象方法才能被覆写只有虚方法和抽象方法才能被覆写n n要求:要求:(三相同)(三相同)n n相同的方法名称相同的方法名称n n相同的参数列表相同的参数列表n n相同的返回值类型相同的返回值类型Override&Overload比较比较Items Items Override Override 覆写覆写Overload Overload 重载重载位置位置存在于继承关系的存在于继承关系的类中类中存在于同一类中存在于同一类中方法名方法名相同相同相同相同参数列表参数列表相同相同必须不同必须不同返回值返回值相同相同可以不相同可以不相同抽象方法抽象方法n n抽象方法是必需被派生类覆写的方法。抽象方法是必需被派生类覆写的方法。n n抽象方法是可以看成是没有实现体的虚方法抽象方法是可以看成是没有实现体的虚方法n n假如类中包含抽象方法,那么类就必需定义假如类中包含抽象方法,那么类就必需定义为抽象类,不论是否还包含其它一般方法为抽象类,不论是否还包含其它一般方法n npublc abstract bool Withdraw();