Python的继承主要包含:
1. 单继承:
- 使用(parent class)继承一个父类
- 子类继承父类的所有方法和属性
- 可以重写父类的方法
- 使用super()访问父类的方法和属性
2. 多继承:
- 使用(parent class1, parent class2)继承多个父类
- 如果父类有同名属性或方法,会产生名称冲突,需要重写或明确调用
3. 方法的重写:
- 子类可以重写父类的方法
- 使用super()调用父类的方法
- 重写可以扩展或修改父类方法的功能
4. 方法的重载:
- Python不支持方法重载,会产生名称冲突
- 需要在同名方法中进行条件判断以实现相近效果
示例:
python # 单继承 class Person: def __init__(self, name, age): self.name = name self.age = age class Student(Person): def __init__(self, name, age, id): super().__init__(name, age) self.id = id # 多继承 class Father: def show(self): print('父亲') class Mother: def show(self): print('母亲') class Child(Father, Mother): def show(self): print('子女') # 方法重写 class Person: def say_hello(self): print('Hello!') class Student(Person): def say_hello(self): super().say_hello() print('I am a student!') s = Student() s.say_hello() # Hello! # I am a student! # 方法重载 def add(a, b): return a + b def add(a, b, c): return a + b + c add(1, 2) # 会调用第一个add方法 add(1, 2, 3) # 会调用第二个add方法,产生名称冲突 |
继承是面向对象编程的关键,要深入理解单继承、多继承及其作用。要注意名称冲突的问题,在必要时重写方法或使用super()访问父类方法。
要注意Python不支持方法重载,相应情况下需要在方法内进行条件判断。要在项目中灵活选择继承方式,重用已有代码,扩展功能。
继承的运用是面向对象开发的精髓,可以实现逻辑的复用和扩展,构建层次清晰的系统架构。要理解这些概念,并在代码中大量实践。