这篇内容当中将会给大家带来有关什么是Python多态?python中什么是类的多态?文章内容丰富为大家进行分析和叙述,阅读完这篇文章之后希望大家可以有所收获。

什么是Python多态?python中什么是类的多态?

对于弱类型的语言来说,变量并没有声明类型,因此同一个变量完全可以在不同的时间引用不同的对象。当同一个变量在调用同一个方法时,完全可能呈现出多种行为所呈现的行为都由该变量的对象决定,这就是所谓的多态。

先看下面程序:

class yun:
    def move(self, field):
        print('%s在天上飘飘' % field)
class xaiocao:
    def move(self, field):
        print(' %s在地上生长' % field)

# x变量被赋值为yun对象

x = yun ()

# 调用x变量的move()方法

x.move('云')

# x变量被赋值为xiaocao对象

x = xiaocao()

# 调用x变量的move()方法

x.move('小草')

上面程序中 x 变量开始被赋值为 yun对象,因此当 x 变量执行 move() 方法时,它会表现出云在天上飘行为。接下来 x 变量被赋值为 xaiocao对象,因此当 x 变量执行 move() 方法时,它会表现出小草生长的行为。

运行上面程序,可以看到如下运行结果:

云在天上飘飘

小草在地上生长

从上面的运行结果可以看出,同一个变量 x 在执行同一个 move() 方法时,由于 x 指向的对象不同,因此它呈现出不同的行为特征,这就是多态。实际上,多态是一种非常灵活的编程机制。

多态首先是建立在继承的基础上的,先有继承才能有多态。多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。多态成立的另一个条件是在创建子类时候必须使用父类new子类的方式,这就是类的多态。

F f1 = new Z1();
F f2 = new Z2();
f1.c();
f2.c();

子类Z1,Z2继承了父类F,并且重写了父类的方法c(),然后通过f1和f2去调用子类重写父类后的这个方法,即还有一个成立条件是子类必须重写父类的方法。面向对象的三个基本特征是:封装、继承、多态。

上述就是为大家分享的什么是Python多态?python中什么是类的多态?的相关内容,如果刚好有类似的疑惑,可以多看看这篇文章加深理解。

更多python相关文章请访问分类:python

【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!