赞
踩
本章学习链接如下:
Python 面向对象——2.类与对象实例属性补充解释,self的作用等
类的继承是一种创建新类的方式,新类称为派生类(子类),继承自一个或多个基类(父类)。继承允许派生类(子类)获取基类(父类)的属性和方法,同时还可以定义自己的属性和方法。
基类(父类):被继承的类。
派生类(子类):继承基类的类。
重写(Override):子类可以重写继承自父类的方法。
方法解析顺序(MRO):Python解释器用于查找对象属性和方法的顺序。
创建一个新类,在小括号里面写上父类的名称,调用父类的构造函数我们使用super().method(),子类可以继承父类的所有,因为他们本来就是包含关系,不如人按性别分分成男人和女人,那派生类男人肯定具有人的一切特征,除此之外,还有他的特殊特征:
- class BaseClass:
- # 父类的方法和属性
- def method(self):
- pass
-
- class DerivedClass(BaseClass):
- # 子类的方法和属性
- def method(self):
- super().method() # 调用父类的方法
- # 子类特有的实现
'运行
比如调用父类的构造函数我们可以写成:
- # 定义基类 Vehicle
- class Vehicle:
- def __init__(self, brand):
- self.brand = brand
-
- def start_engine(self):
- print(f"The {self.brand} engine has started.")
-
- # 定义派生类 Car,继承自 Vehicle
- class Car(Vehicle):
- def __init__(self, brand, model):
- super().__init__(brand) # 调用父类的构造器
- self.model = model#子类自己新建的实例属性
'运行
假设我们有一个名为 Vehicle
的基类,它代表一个交通工具,然后我们创建两个派生类 Car
和 Bicycle
,分别代表汽车和自行车。
Vehicle
是基类,定义了所有交通工具共有的属性和方法。Car
和 Bicycle
是派生自 Vehicle
的子类,它们继承了 Vehicle
的属性和方法,但也定义了自己的构造器和 start_engine
方法。super().__init__(brand)
来调用基类的构造器,确保子类实例能够正确地初始化继承的属性。Car
类中的 start_engine
方法首先执行自己的逻辑,然后使用 super().start_engine()
调用基类的 start_engine
方法。Bicycle
类中的 start_engine
方法则完全不同,因为自行车没有引擎。- # 定义基类 Vehicle
- class Vehicle:
- def __init__(self, brand):
- self.brand = brand
-
- def start_engine(self):
- print(f"The {self.brand} engine has started.")
-
- # 定义派生类 Car,继承自 Vehicle
- class Car(Vehicle):
- def __init__(self, brand, model):
- super().__init__(brand) # 调用父类的构造器
- self.model = model
-
- def start_engine(self):
- # 可以在这里添加额外的逻辑
- print(f"The {self.model} {self.brand} engine has started.")
- # 调用父类的方法
- super().start_engine()
-
- # 定义另一个派生类 Bicycle,同样继承自 Vehicle
- class Bicycle(Vehicle):
- def __init__(self, brand):
- super().__init__(brand)
-
- def start_engine(self):
- # 自行车没有引擎,所以这里的方法会有所不同
- print(f"The {self.brand} bicycle is ready to pedal.")
-
- # 创建对象
- my_car = Car("Tesla", "Model 3")
- my_bicycle = Bicycle("Trek")
-
- # 调用方法
- my_car.start_engine() # 输出: The Model 3 Tesla engine has started.
- # The Tesla engine has started.
- my_bicycle.start_engine() # 输出: The Trek bicycle is ready to pedal.
'运行
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。