美文网首页
03-单继承和方法的重写

03-单继承和方法的重写

作者: 努力爬行中的蜗牛 | 来源:发表于2018-10-29 16:08 被阅读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)
    

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

    相关文章

      网友评论

          本文标题:03-单继承和方法的重写

          本文链接:https://www.haomeiwen.com/subject/efvbtqtx.html