1. 继承的概念:子类有父类的所有的 方法 和 属性
2. 子类继承父类,可以直接享受父类已经封装好的方法,不需要再次开发
3. 子类中应该根据职责,封装子类特有的属性和方法
4. c类从b类继承,b类从a类继承,那么c类就具有b类和a类的所有属性和方法 传递性
class Animal:
def eat(self):
print("吃---")
def drink(self):
print("喝---")
def run(self):
print("跑")
def sleep(self):
print("睡")
class Dog(Animal): #括号里Animal是父类
def bark(self):
print("汪汪叫")
class XiaoTianQuan(Dog): #括号里Dog是父类
def fly(self):
print("飞")
#创建一个狗对象
wangcai = Dog()
wangcai.eat()
wangcai.drink()
wangcai.run()
wangcai.sleep()
wangcai.bark()
#创建一个哮天犬对象
xtq = XiaoTianQuan()
xtq.eat()
xtq.bark()
xtq.fly()
#输出
吃---
喝---
跑
睡
汪汪叫
吃---
汪汪叫
飞
1)覆盖父类的方法
- 如果在开发中,父类的方法实现和子类的方法实现,完全不同,
- 就可以使用覆盖的方式,在子类中重新编写父类的方法实现
具体的实现方式,就相当于在子类中定义了一个和父类同名的方法并实现
- 重谢之后,在运行时,只会调用子类的重写方法,而不会调用父类的封装方法
2)对父类的方法进行扩展
- 如果在开发中,子类的方法实现中包含父类的方法实现
父类原本封装的方法实现是子类方法的一部分
- 就可以使用扩展的方式
- 在子类中 重写 父类的方法
- 在需要的位置使用super().父类方法来调用父类方法执行
- 代码其他的位置针对子类的需求,编写 子类特有的代码实现
- 关于super
1.在python中super是一个特殊的类
2.super()就是使用super类创建出来的对象
3.最常使用的场景是重写父类方法时,调用在父类中封装的方法实现
class Animal:
def eat(self):
print("吃---")
def drink(self):
print("喝---")
def run(self):
print("跑")
def sleep(self):
print("睡")
class Dog(Animal): #括号里Animal是父类
def bark(self):
print("汪汪叫")
class XiaoTianQuan(Dog): #括号里Dog是父类
def fly(self):
print("飞")
def bark(self):
#1.针对子类特有的需求,编写代码
print("神一样的叫唤...")
#2.使用super().,调用原本在父类中封装的方法
super().bark()
#3.增加其他子类的代码
print("@#$")
#创建一个哮天犬对象
xtq = XiaoTianQuan()
xtq.bark()
#输出
神一样的叫唤...
汪汪叫
@#$
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。