python【面向对象(继承)】

面向对象的三大特征:
1.封装:根据职责将属性和方法封装到一个抽象的类中
2.继承:实现代码的重用,相同的代码不需要重复写

1.

class Animal():
    def eat(self):
        print('吃~~~~~')
    def drink(self):
        print('喝')
    def run(self):
        print('跑')
    def sleep(self):
        print('睡')

class Cat(Animal):
    # def eat(self):
    #     print('吃~~~~~')
    # def drink(self):
    #     print('喝')
    # def run(self):
    #     print('跑')
    # def sleep(self):
    #     print('睡')
    def call(self):
        print('喵~')

fentiao = Cat()
fentiao.eat()
fentiao.run()
fentiao.call()

#子类继承自父类,可以直接享受父类中已经封装好的方法
#子类重应该根据职责,封装子类特有的属性和方法

2.

class Animal():
    def eat(self):
        print('吃~~~~~')
    def drink(self):
        print('喝')
    def run(self):
        print('跑')
    def sleep(self):
        print('睡')

class Cat(Animal):
    def call(self):
        print('喵~')

class HelloKitty(Cat):
    def speak(self):
        print('我能说英语')

class Dog(Animal):
    def bark(self):
        print('汪~')

kt = HelloKitty()
kt.eat()
kt.speak()

#子类可以继承父类的所有属性和方法
#继承具有传递性,子类拥有父类的父类的属性和方法

3.

    def eat(self):
        print('吃~~~~~')
    def drink(self):
        print('喝')
    def run(self):
        print('跑')
    def sleep(self):
        print('睡')

class Cat(Animal):
    def call(self):
        print('喵~')

class HelloKitty(Cat):
    def speak(self):
        print('我能说英语')
    def call(self):
        print('@#@$@$@#@!#')

kt = HelloKitty()
kt.call()

#如果子类重,重写了父类的方法
#在运行重,只会调用在子类中重写的方法而不会调用父类方法

4.

class Animal():
    def eat(self):
        print('吃~~~~~')
    def drink(self):
        print('喝')
    def run(self):
        print('跑')
    def sleep(self):
        print('睡')

class Cat(Animal):
    def call(self):
        print('喵~')

class HelloKitty(Cat):
    def speak(self):
        print('我能说英语')
    def call(self):
        #1.针对子类特有的需求,编写代码
        print('@#@$@$@#@!#')
        #2.调用原本在父类中封装的方法
        # Cat.call(self)
        super().call()

kt = HelloKitty()
kt.call()

在这里插入图片描述
在这里插入图片描述

5.多继承,但两个父类有相同的方法,优先第一个父类

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43407305/article/details/86742468