【Python进阶篇 面向对象程序设计(3) 继承】
文章目录
- 1、继承的基本语法
- (1)单继承
- (2)多重继承
- 2、方法重写
- 3、super()函数
在面向对象编程中,被继承的类称为父类,新的类称为子类。
1、继承的基本语法
(1)单继承
# 继承
# 父类
class Fruit:color = '绿色'def harvest(self, color):print("水果是:" + color + "的!")print("水果原来是:" + Fruit.color + "的!")# 子类
class Apple(Fruit):color = '红色'def __init__(self):print("我是苹果")class Orange(Fruit):color = '橙色'def __init__(self):print("\n我是橘子")apple = Apple()
apple.harvest(apple.color)
orange = Orange()
orange.harvest(orange.color)
(2)多重继承
class 父类1:passclass 父类2:passclass 子类(父类1, 父类2): # 子类继承多个父类pass
2、方法重写
子类可以覆盖父类的方法,实现自定义行为。
class Animal:def speak(self):return "通用叫声"class Dog(Animal):def speak(self): # 重写父类方法return "Woof!"
3、super()函数
调用父类的方法(常用于初始化和扩展功能)。
class Fruit:def __init__(self, color="绿色"):Fruit.color = colordef harvest(self):print("水果原来是:" + Fruit.color + "的!")class Apple(Fruit):def __init__(self):print("我是苹果!")apple = Apple()
apple.harvest()
直接运行上面的代码有报错:
原因是在子类的__init__()方法中不会自动调用父类的__init__()方法,需要使用super()函数。
class Fruit:def __init__(self, color="绿色"):Fruit.color = colordef harvest(self):print("水果原来是:" + Fruit.color + "的!")class Apple(Fruit):def __init__(self):print("我是苹果!")super().__init__() ## 调用父类的__init__()方法apple = Apple()
apple.harvest()