您现在的位置是:网站首页 > 博客日记 >

python面向对象之多态

作者:YXN-python 阅读量:23 发布日期:2023-11-23

多态(Polymorphism)是一种允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。在Python中,多态主要通过鸭子类型(duck typing)和继承来实现。

鸭子类型

def quack_and_fly(bird):
    bird.quack()
    bird.fly()

class Duck:
    def quack(self):
        print("鸭子嘎嘎叫")

    def fly(self):
        print("鸭子飞")

class Person:
    def quack(self):
        print("人叫")

    def fly(self):
        print("人不能飞")

duck = Duck()
person = Person()
quack_and_fly(duck)
quack_and_fly(person)

继承

# 汽车:奔驰、理想、奥拓
class Car:
    def run(self):
        print('汽车在跑', end=' ')

class Benz(Car):
    def run(self):
        super().run()
        print('加98号油')

class Lx(Car):
    def run(self):
        super().run()
        print('充电')

class Auto(Car):
    def run(self):
        super().run()
        print('加92号油')

car1 = Benz()
car2 = Lx()
car3 = Auto()
car1.run()  # 汽车在跑 加98号油
car2.run()  # 汽车在跑 充电
car3.run()  # 汽车在跑 加92号油

YXN-python

2023-11-23