三大特性之类的多态1(普通函数如何进行多态)

三大特性之类的多态(普通函数如何进行多态)

还是熟悉的八股文:

        在编程语言类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。

编程语言类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。

计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。

多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”。

多态可分为变量多态与函数多态。变量多态是指:基类型的变量(对于C++是引用或指针)可以被赋值基类型对象,也可以被赋值派生类型的对象。函数多态是指,相同的函数调用界面(函数名与实参表),传送给一个对象变量,可以有不同的行为,这视该对象变量所指向的对象类型而定。因此,变量多态是函数多态的基础。

多态还可分为:

  • 动态多态(dynamic polymorphism):通过类继承机制和虚函数机制生效于运行期。可以优雅地处理异质对象集合,只要其共同的基类定义了虚函数的接口。也被称为子类型多态(Subtype polymorphism)或包含多态(inclusion polymorphism)。在面向对象程序设计中,这被直接称为多态

  • 静态多态(static polymorphism):模板也允许将不同的特殊行为和单个泛化记号相关联,由于这种关联处理于编译期而非运行期,因此被称为“静态”。可以用来实现类型安全、运行高效的同质对象集合操作。C++STL不采用动态多态来实现就是个例子。

    • 函数重载(Function Overloading)

    • 运算符重载(Operator Overloading)

    • 带变量的宏多态(macro polymorphism)

    • 非参数化多态或译作特设多态(Ad-hoc polymorphism):

    • 参数化多态(Parametric polymorphism):把类型作为参数的多态。在面向对象程序设计中,这被称作泛型编程

对于C++语言,带变量的宏和函数重载(function overload)机制也允许将不同的特殊行为和单个泛化记号相关联。然而,习惯上并不将这种函数多态(function polymorphism)、宏多态(macro polymorphism)展现出来的行为称为多态(或静态多态),否则就连C语言也具有宏多态了。谈及多态时,默认就是指动态多态,而静态多态则是指基于模板的多态。

多说无益,看了你也记不住!!直接上代码:

'''
多态:简单点来说就是多个对象公用一个接口,又表现的形态不一样的现象就叫做多态!!
'''
class Dog:
    def sound(self):
        print('狗在汪汪叫!!')

class Cat:
    def sound(self):
        print('猫在喵喵叫!')

#  Make_sound 函数相当于一个接口方法!多个对象调用同一个接口,表现出不同的形式,叫做多态!!
def Make_sound(animal_soud):
    animal_soud.sound()

d1=Dog()
c1=Cat()
#多个对象调用同一个接口,表现出不同的形式!!
Make_sound(d1)
Make_sound(c1)
'''
一般多态都是抽象类来实现多态!!---抽象类实现多态
'''




多态:简单点来说就是多个对象公用一个接口,又表现的形态不一样的现象就叫做多态!!

        在这里我构造的函数当中Make_sound 函数相当于一个接口方法!多个对象调用同一个接口,表现出不同的形式,叫做多态!!

#  Make_sound 函数相当于一个接口方法!多个对象调用同一个接口,表现出不同的形式,叫做多态!!
def Make_sound(animal_soud):
    animal_soud.sound()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天的学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值