首页 / 知识
python多态是什么
2023-11-12 13:08:00
在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,下面详细了解什么是多态。
我们都知道,Python是弱类型语言,即在使用变量时,无需为其指定具体的数据类型,这就可能出现,同一个变量会赋值不同的类对象,例如:
classBird:
defmove(self,field):
print('鸟在%s'%field)
classDog:
defmove(self,field):
print('狗在%s'%field)
a=Bird()
a.move("飞")
a=Dog()
a.move("跑")
运行结果为:
鸟在飞
狗在跑
可以看到,a可以被先后赋值为Bird类和Dog类的对象。而在此基础上,发生多态还要满足以下2个前提条件:继承:多态一定是发生在子类和父类之间;重写:子类重写了父类的方法。
因此,下面程序是对前面代码的改写:
classAnimal:
defmove(self,field):
print("动物在%s"%field)
classBird(Animal):
defmove(self,field):
print('鸟在%s'%field)
classDog(Animal):
defmove(self,field):
print('狗在%s'%field)
a=Animal()
a.move("叫")
a=Bird()
a.move("飞")
a=Dog()
a.move("跑")
运行结果为:
动物在叫
鸟在飞
狗在跑
此程序中,Bird和Dog类都继承自Animal类,且都各自重写了父类的move()方法。从运行结果可以看出,同一个变量a在执行同一个move()方法时,由于x指向的对象不同,因此实际调用的并不是同一个move()方法,这就是多态。
以上内容为大家介绍了Python培训之多态是什么,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python 培训之 object是什么类型
python 培训之 object是什么类型,培训,类型,实例,顶端,对象,关系,链条,父子,数据类型,属性,在Python的世界中,object是父子关系的顶端,所有的数python变量赋值是什么
python变量赋值是什么,培训,变量,名称,数字,标准,类型,赋值,声名,字符串,数据类型,1、什么是变量?变量:值会发生变化的的量,与常量相对.2、pythpython类自带方法吗
python类自带方法吗,培训,方法,里面,实例,也就是说,下面,对象,以上,之后,参数,python中的类,创建好之后,里面是没有方法的,也就是说,类并没有自带python如何确定是否为可迭代对象
python如何确定是否为可迭代对象,培训,元素,索引,对象,整数,字典,函数,类型,下标,模块,迭代可以理解为,任意的集合使用for循环遍历python中,迭python怎么调用类方法
python怎么调用类方法,培训,方法,实例,静态,定义,参数,属性,对象,关键字,以上,python中的类用来描述具有相同的属性和方法的对象的集合。它定python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python怎么写多行代码
python怎么写多行代码,代码,培训,情况,示例,字符串,斜杠,方法,行书,括号,有用,在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但python可以继承父类方法吗
python可以继承父类方法吗,培训,代码,名字,方法,动物,属性,编译器,这样的话,定义,里面,python继承,调用父类属性方法在python里面,继承一个类python怎么判断某一对象是否为字典
python怎么判断某一对象是否为字典,培训,名称,代码,情况,类型,实例,元素,字典,函数,对象,我们经常需要在Python代码中确定某个实例是什么类型python如何查看对象属性
python如何查看对象属性,培训,网络,系统,函数,对象,属性,变量,示例,实例,模块,在Python语言中,有些库在使用时,在网络上找到的文档不全,这就需要python函数的高级使用方法
python函数的高级使用方法,代码,函数,灵活,数据,培训,时间,定义,程序,赋值,变量,Python的函数是“一等公民”,因此函数本身也是一个对象,函数既