Python OOP 继承:父类和子类
学习 Python OOP 中的继承。掌握子类化、重写方法、使用 super() 和多重继承模式。
概述
继承是面向对象编程(OOP)的基本支柱之一。它是一种允许新类(称为子类或子类)采用现有类(称为父类或超类)的属性和方法的机制。这种设计模式可以促进代码重用,减少冗余,并在应用程序的不同组件之间建立逻辑的层次关系。
要在 Python 中实现继承,请在子类定义期间在括号内传递父类名称:`class Child(Parent):`。子类立即继承父类的所有方法和变量。如果子级需要自定义行为,它可以通过使用相同名称重新定义来覆盖任何父级方法。在重写的方法中,您仍然可以使用内置的“super()”函数调用父级的实现,确保您可以扩展而不是完全替换现有逻辑。
与许多静态类型语言不同,Python 本身支持多重继承,这意味着子类可以从多个父类继承(例如,“class SmartDevice(Camera, Phone):”)。为了解决名称冲突时执行哪个父方法的问题,Python 使用了一种称为方法解析顺序 (MRO) 的严格算法。了解如何构造继承树和使用 super() 对于设计可扩展的面向对象体系结构至关重要。
代码和执行输出
创建一个父 Vehicle 类和一个使用 super() 覆盖初始化的子 Car 子类。
inheritance.py
在编辑器中尝试class Vehicle:
def __init__(self, brand, year):
self.brand = brand
self.year = year
def display_info(self):
return f"{self.year} {self.brand}"
class Car(Vehicle):
def __init__(self, brand, year, model):
# Call parent constructor
super().__init__(brand, year)
self.model = model
def display_info(self):
# Override parent method and extend it
parent_info = super().display_info()
return f"{parent_info} {self.model}"
my_car = Car("Ford", 2026, "Mustang")
print(my_car.display_info())端子输出
2026 Ford Mustang逐步实施
- 创建继承自 Exception 的自定义异常类
- 构建继承自通用视图的 UI 组件(如按钮)
- 定义分层数据库模型(例如用户、员工、经理)
常见问题解答
super() 在子类化中做什么?
super() 返回父类的临时对象,允许您调用其方法,这对于在 __init__ 中初始化父类字段特别有用。
你能阻止一个类被继承吗?
Python 不支持像 Java 那样的“final”关键字来限制继承。按照惯例,我们记录类意图,或者使用类型检查器和来自打字模块的 @final 注释。
相关主题
推荐的 Python 资源
通过相关的交互式教程、备忘单和代码比较来扩展您的知识。