03-单继承和方法的重写

2018-10-29  本文已影响1人  努力爬行中的蜗牛
面向对象的三大特性:封装、继承和多肽

继承:子类拥有父类所有的属性和方法。

class Animal:
    def eat(self):
        print("吃")

    def sleep(self):
        print("睡")

class Dog(Animal):  #继承Animal类
    def bark(self):
        print("汪汪汪")

dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
子类重写父类方法,覆盖父类方法
class Animal:
    def eat(self):
        print("吃")

    def sleep(self):
        print("睡")


class Dog(Animal):
    # 重写父类方法
    def eat(self):
        print("狗狗在吃")

    def bark(self):
        print("汪汪汪")


dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
子类重写父类方法,扩展父类方法
class Animal:
    def eat(self):
        print("吃")

    def sleep(self):
        print("睡")


class Dog(Animal):
    # 重写父类方法
    def eat(self):
        # 1. 针对子类特有的需求,编写代码
        print("狗狗在吃")
        # 2. 使用super().,调用原本在父类中封装的方法
        # 父类名.方法(self)
        # Dog.eat(self)
        super().eat()
        # 3. 增加其他子类的代码

    def bark(self):
        print("汪汪汪")


dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
使用父名调用父类方法
父类名.方法(self)

子类不能直接访问父类的私有属性和私有方法
子类可以通过父类的共有方法访问到父类的私有属性和方法

上一篇下一篇

猜你喜欢

热点阅读