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

Python基础篇 - 面向对象的三大特性(2)-继承

  • 2026-09-08 20:01:40
Python基础篇 - 面向对象的三大特性(2)-继承
 面向对象的三大特性(2)之继承

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

    1. 继承:顾名思义,子类既可以继承父类中的属性和方法,实现代码重用,子类也可以新增自己特有的方法和重写父类的方法;但是子类不能继承父类的私有属性和私有方法。

    1.1 单、多继承:顾名思义,单继承只继承了一个父类,多继承则有多个父类。当我们调用方法时,先在子类中查找,若不存在:单继承则再从父类中查找,多继承则再从左到右、从新到老依次查找父类中是否包含该方法(可以通过类名.__mro__解析调用顺序)。

# 单、多继承示例class Person:    """人的类"""    home = "earth"    def __init__(self, name):        self.name = name    def study(self):        print("studying...")#----- 1. 单继承,继承单个父类 -----class YellowRace(Person):    """黄种人"""    color = "yellow"    def run(self):        print("runing...")class Student(Person):    """学生"""    def __init__(self, name, grade):        self.name = name        self.grade = grade    def listen(self):        print("listening...")# ----- 2. 多继承,继承两个及以上父类 -----class ChineseStudent(Student, YellowRace):  # 继承了Student和YellowRace    """中国学生"""    country = "中国"y1 = ChineseStudent("张三", "三年级")print(y1.home, y1.color, y1.country, y1.name, y1.grade)y1.listen()y1.run()y1.study()

    1.2 父类方法复用:顾名思义,就是子类沿用父类的老方法,子类可以在类中使用super().方法名()或父类名.方法名()来调用父类的方法,推荐第一种方法。

# 父类方法复用示例class Animal:    """动物父类"""    def __init__(self, name, age):        self.name = name          self.age = age        def eat(self):        print(f"{self.name}({self.age}岁)正在吃食物~")# 子类继承自父类class Dog(Animal):    """子类:继承Animal,演示父类方法的复用"""    def __init__(self, name, age, breed):        # super() 指向父类,调用父类的初始化方法,避免重复写self.name/self.age        super().__init__(name, age)
    1.3 父类方法改写:在子类中定义与父类方法重名的方法,调用时会调用子类中改写的方法,子类还可直接新增独特的新属性与新方法。
# 父类方法改写class Animal:    """动物父类"""    def __init__(self, name, age):        self.name = name  # 名字        self.age = age    # 年龄    # 父类通用方法    def eat(self):        print(f"{self.name}({self.age}岁)正在吃食物~")# 子类继承自父类class Dog(Animal):    """子类:继承Animal,演示父类方法的改写"""    def __init__(self, name, age, breed):        # 我们可以先调用父类基础方法,再改写、新增我们想要的效果        super().__init__(name, age)        self.breed = breed  # 子类新增属性    def eat(self):        super().eat()        # 复用之后再添加子类独有的拓展        print(f"{self.name}({self.breed})还啃了骨头🦴~")    # 子类还可以直接新增独有的方法    def bark(self):        print(f"{self.name}汪汪叫!")

总结:今日我们学习了Python基础篇-面向对象的三大特性(2)-继承:主要认识了单继承与多继承两种继承形式,理解了方法解析顺序(MRO)对多继承中方法调用顺序的规范作用;同时掌握了父类方法的复用技巧,可通过super().方法名()调用父类方法避免代码冗余,也学会了子类对父类方法的改写,即在保留父类核心逻辑的基础上扩展子类独有的功能,这些知识点清晰展现了继承在代码复用与扩展上的核心价值。在Python基础篇,后续我们将持续学习Python基础知识,祝每一位study er学习愉快。

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

最新文章

随机文章