python中多态是什么意思_python类的多态是什么

更新时间:2023-07-04 08:02:41 阅读: 评论:0

python中多态是什么意思_python类的多态是什么
多态⾸先是建⽴在继承的基础上的,先有继承才能有多态。多态是指不同的⼦类在继承⽗类后分别都重写覆盖了⽗类的⽅法,即⽗类同⼀个⽅法,在继承的⼦类中表现出不同的形式。多态成⽴的另⼀个条件是在创建⼦类时候必须使⽤⽗类new⼦类的⽅式。Fu f1 = new Zi1();
Fu f2 = new Zi2();
f1.c();
f2.c();
新生活大爆炸下载⼦类Zi1,Zi2继承了⽗类Fu,并且重写了⽗类的⽅法c()
然后通过f1,和f2去调⽤⼦类重写⽗类后的这个⽅法。即还有⼀个成⽴条件是⼦类必须重写⽗类的⽅法。
⾯向对象的三个基本特征是:封装、继承、多态。
⽐如,你和你朋友同时继承了⼈这个类中打⼈的⽅法,但是你⽤拳头打⼈和你朋友⽤巴掌打⼈的⽅法都是打⼈⽅法,却表现出不同的形式,这就是现实⽣活中多态的理解。claymore
line phone
关于多态,有⼀个被称作“鸭⼦类型”(duck typeing)的东西,其含义在维基百科中被表述为:
在程序设计中,鸭⼦类型(英语:duck typing)是动态类型的⼀种风格。在这种风格中,⼀个对象有效的语义,不是由继承⾃特定的类或实现特定的接⼝,⽽是由当前⽅法和属性的集合决定。这个概念的名字来源于由 James Whitcomb Riley 提出的鸭⼦测试(见下⾯的“历史”章节),“鸭⼦测试”可以这样表述:“当看到⼀只鸟⾛起来像鸭⼦、游泳起来像鸭⼦、叫起来也像鸭⼦,那么这只鸟就可以被称为鸭⼦。”
nnd是什么意思
在 python 中多态的经典使⽤可以⽤两句话来总结对扩展开放和对修改封闭,即著名的「开闭」原则。对扩展开放即可以随意的增加⽗类的⼦类;对修改封闭即对于依赖⽗类的函数,新增⼦类对该函数⽆任何影响⽆需做任何修改。
我们可以通过以下代码来加深理解:#!/usr/bin/env python3
verly# -*- coding:utf-8 -*-
class Person:
def __init__(lf, name, age):
河北教育考试院官网lf.name = name
lf.age = age
def print_age(lf):
新概念2课后答案>早中餐英文print("%s's age is %s" % (lf.name, lf.age))
class Man(Person):
def print_age(lf):
print("Mr. %s's age is %s" %(lf.name, lf.age))
class Woman(Person):
def print_age(lf):
print("Ms. %s's age is %s" %(lf.name, lf.age))
def person_age(person):
person.print_age()
person = Person("kevin", 23)
dead giveawayman = Man("Bob", 33)
woman = Woman("Lily", 28)
person_age(person)
person_age(man)
person_age(woman)
章节的英文以上代码执⾏结果如下:kevin's age is 23
Mr. Bob's age is 33
Ms. Lily's age is 28
在以上代码中函数 person_age 函数的输⼊参数为类 Person 的实例,但是在实际执⾏过程中 Person 的⼦类 Man 和 Woman 的⽰例同样可以在 person_age 函数中正常运⾏,这既是类的多态的作⽤。实际上任何实现了函数 print_age 函数的类均可作为 person_age 函数的参数且能够正常⼯作,这既是
前⾯提到的「鸭⼦类型」。

本文发布于:2023-07-04 08:02:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1077559.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:多态   函数   继承   概念   修改   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图