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