Python之继承

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)对父类的方法进行扩展

  • 如果在开发中,子类的方法实现中包含父类的方法实现
    父类原本封装的方法实现是子类方法的一部分
  • 就可以使用扩展的方式
    1. 在子类中 重写 父类的方法
    2. 在需要的位置使用super().父类方法来调用父类方法执行
    3. 代码其他的位置针对子类的需求,编写 子类特有的代码实现
  • 关于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()

#输出
神一样的叫唤...
汪汪叫
@#$
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容