Python教程32:继承
Python教程32:继承 “站在巨人的肩膀上。” 继承是面向对象编程的三大特性之一(封装、继承、多态),它让我们可以基于已有类创建新类,实现代码复用。今天我们深入学习Python的继承机制。 1. 什么是继承 问题场景 假设要创建多个类: 1# 没有继承:代码重复 2class Dog: 3 def __init__(self, name, age): 4 self.name = name 5 self.age = age 6 7 def eat(self): 8 return f"{self.name} is eating" 9 10class Cat: 11 def __init__(self, name, age): 12 self.name = name 13 self.age = age 14 15 def eat(self): 16 return f"{self.name} is eating" 17 18 def meow(self): 19 return "Meow!" 20 21# 重复的代码... 继承(Inheritance): 子类继承父类的属性和方法 子类可以添加新的属性和方法 子类可以重写父类的方法 实现代码复用,减少重复 为什么需要继承: 代码复用:共享功能写一次 逻辑清晰:体现is-a关系(狗是动物) 易于维护:修改父类,所有子类受益 扩展性强:基于现有代码扩展新功能 继承的基本语法 1class ParentClass: 2 """父类(基类、超类)""" 3 pass 4 5class ChildClass(ParentClass): 6 """子类(派生类)""" 7 pass 2. 基本继承 简单示例 1class Animal: 2 """动物类(父类)""" 3 4 def __init__(self, name, age): 5 """初始化动物""" 6 self.name = name 7 self.age = age 8 9 def eat(self): 10 """吃东西(所有动物都会吃)""" 11 return f"{self.name} is eating" 12 13 def sleep(self): 14 """睡觉""" 15 return f"{self.name} is sleeping" 16 17class Dog(Animal): 18 """狗类(子类)- 继承Animal""" 19 20 def bark(self): 21 """狗叫(狗特有的方法)""" 22 return f"{self.name} says: Woof!" 23 24class Cat(Animal): 25 """猫类(子类)- 继承Animal""" 26 27 def meow(self): 28 """猫叫(猫特有的方法)""" 29 return f"{self.name} says: Meow!" 30 31# 使用 32dog = Dog("Buddy", 3) 33print(dog.eat()) # 继承自Animal:Buddy is eating 34print(dog.bark()) # Dog自己的方法:Buddy says: Woof! 35 36cat = Cat("Whiskers", 2) 37print(cat.eat()) # 继承自Animal:Whiskers is eating 38print(cat.meow()) # Cat自己的方法:Whiskers says: Meow! 继承的特点: ...