PY进阶——面向对象_多态性

多态

多态指的是同一个函数接收不同的参数有不同的效果
实现多态的条件:
1.有继承
2.函数重写(子类重写父类的函数)
3.父类引用指向子类对象(子类对象传给父类对象调用者)
注意上述条件与JAVA中的一致,但py是一门弱类型语言,因此可以不满足条件也可以实现多态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Person:
def sex(self):
pass
class Man(Person):#继承
def __init__(self):
self.name = 'Man'
def sex(self):#函数重写
return self.name
class Woman(Person):
def __init__(self):
self.name = 'WoMan'
def sex(self):
return self.name
def get_sex(m):#接收不同对象实现不同效果,等同m:Person,但py的弱类型语言,传递非Person类的参数时只会警告
return m.sex()
if __name__ == '__main__':
m1 = Man() #m1:Person=Man() 父类引用指向子类对象
m2 = Woman()
print(get_sex(m1))
print(get_sex(m2))

多态能实现模块间的解耦合(函数重写与调用函数来实现),增加可扩展性
但在python中无法精准限定类型(只警告,不报错)

注意:上述代码中父类的sex方法是空写pass,这是使用父类来确定有哪些方法(抽象类、抽象接口),子类来实现具体方法


PY进阶——面向对象_多态性
http://example.com/2026/03/25/PY进阶——面向对象-多态性/
作者
印星
发布于
2026年3月25日
许可协议