当前位置:首页>python>Python基础篇 - 面向对象的三大特性(3)-多态

Python基础篇 - 面向对象的三大特性(3)-多态

  • 2026-10-06 15:29:35
Python基础篇 - 面向对象的三大特性(3)-多态
 面向对象的三大特性(3)之多态

    今天的基础篇内容讲解面向对象三大特性(3)-多态的基本知识,大家这么聪明,一看就会了,主要是介绍下多态的内容。

    1. 多态:顾名思义,多种状态的表现。就是同一行为(方法),有不同的表现形式。

大白话例子:

    (一) 共同方法:我们关注‘吃饭’这个行为(方法)

    (二) 表现形式:人类用筷子、勺子等吃饭;猫狗用嘴直接啃食;鸟类用喙啄食

    (三) ‘吃饭’是同一个行为(方法),但不同对象(人、狗、鸟)执行时表现形式不同,我们只关注方法,不关注类型,这就是多态。
#--- 多态的示例 ---class Animal:    def eat(self):        passclass Dog(Animal):    def eat(self):        print("直接啃")class Human(Animal):    def eat(self):        print("筷、勺...辅助吃饭")class Bird(Animal):    def eat(self):        print("喙啄食")def eat(animal):    animal.eat()  # 将不同的实例传入,执行不同的方法dog = Dog()human = Human()bird = Bird()eat(dog) # '直接啃'eat(fish) # '筷、勺...辅助吃饭'eat(bird) # '喙啄食'

    1.1 抽象基类与@abstractmethod装饰器:

    抽象基类:自定义抽象基类必须继承abc.ABC,继承 ABC 后,该类就具备了抽象类的特性:该类不能实例化,强制子类实现抽象方法。若尝试将该类实例化,则会报错。

@abstractmethod装饰器:被装饰的方法是抽象方法,只有方法声明,没有具体实现;子类必须重写所有抽象方法,否则子类也无法实例化,这是专门预留给子类去实现的方法,子类必须去完成,否则无法实例化。

#--- 抽象基类与@abstractmethod装饰器 ---from abc import ABC, abstractmethod# 定义抽象基类(继承 ABC)class Shape(ABC):    # 定义抽象方法(子类必须实现)    @abstractmethod    def area(self):        """计算面积的抽象方法,子类必须实现"""        pass  # 抽象方法只有声明,没有实现,由子类实现# 子类(必须实现所有抽象方法)class Rectangle(Shape):    def __init__(self, width, height):        self.width = width        self.height = height    # 实现抽象方法 area    def area(self):        return self.width * self.height# 1.抽象基类不能实例化# shape = Shape()  # 会抛出 TypeError: Can't instantiate abstract class Shape with abstract methods area, perimeter# 2.实例化子类rect = Rectangle(3, 4)print("矩形面积:", rect.area())

总结:今日我们学习了Python基础篇-面向对象的三大特性(3)-多态:多态是指同一个方法名称,在不同子类中可以有不同的实现,调用时只需使用统一的接口,就能自动执行对应对象的行为;认识了@abstractmethod装饰器的作用,其装饰的方法为抽象方法,这预留给子类的方法,且子类必须完成,否则子类无法实例化。多态让代码更加灵活、可扩展,新增子类时无需修改原有逻辑,极大提高了程序的可维护性,是面向对象编程中非常重要的思想。在Python基础篇,后续我们将持续学习Python基础知识,祝每一位study er学习愉快。

<合集链接>
这里是我滴合集内容链接,大家感兴趣就康康吧。
1. 人工智能进阶之路 - 机器学习篇
2. Origin-study
3. 人工智能进阶之路-Python基础篇
4. 充电er的乱坠闲聊
5. Origin认知
点个 赞 你最好看

最新文章

随机文章