zoukankan      html  css  js  c++  java
  • 寒假自学(六)

    希望所有温柔又可爱的人最后都能幸福❤

    今日总结:

    代码量 200行
    博客量 一篇
    所学时间 4小时左右
    了解到的知识点 python面向对象继承

    明日计划:

    早上 python面向对象多态
    下午 python单例设计模式
    晚上

    具体内容:

    继承

    继承实现代码的重用,相同的代码不需要重复的编写

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

    class Animal:
        def eat(self):
            print("吃---")
    
        def drink(self):
            print("喝---")
    
        def run(self):
            print("跑---")
    
        def sleep(self):
            print("睡---")
    
    
    class Dog(Animal):
        def bark(self):
            print("汪汪叫")
    
    
    xsy = Dog()
    
    xsy.eat()
    xsy.drink()
    xsy.run()
    xsy.sleep()
    xsy.bark()
    
    • 子类继承父类,可以直接享受父类中已经封装好的方法,不需要再次开发

    • 子类中应该根据职责,封装子类特有的属性和方法

    专业术语

    • Dog类是Animal类的子类Animal类是Dog类的父类Dog类从Animal继承
    • Dog类是Animal类的派生类Animal类是Dog类的基类Dog类从Animal派生

    继承的传递性

    • C类从B类继承,B类又从A类继承

    • 那么C类就具有B类和A类的所有属性和方法

    子类拥有父类以及父类的父类中封装的所有属性方法

    image-20210110115859926

    class Animal:
        def eat(self):
            print("吃---")
    
        def drink(self):
            print("喝---")
    
        def run(self):
            print("跑---")
    
        def sleep(self):
            print("睡---")
    
    
    class Dog(Animal):
        def bark(self):
            print("汪汪叫")
    
    
    class XiaoSongYue(Dog):
        def fly(self):
            print("我会飞")
    
    
    class Cat(Animal):
        def catch(self):
            print("抓老鼠")
    
    
    xsy = XiaoSongYue()
    
    # xsy.catch()
    xsy.fly()
    xsy.eat()
    xsy.drink()
    xsy.run()
    xsy.sleep()
    xsy.bark()
    

    方法的重写

    • 子类拥有父类的所有方法属性

    • 子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发

    父类的方法实现不能满足子类需求时,可以对方法进行重写

    具体实现就相当于在子类中定义了一个跟父类同名方法

    class Animal:
        def eat(self):
            print("吃---")
    
        def drink(self):
            print("喝---")
    
        def run(self):
            print("跑---")
    
        def sleep(self):
            print("睡---")
    
    
    class Dog(Animal):
        def bark(self):
            print("汪汪叫")
    
    
    class XiaoSongYue(Dog):
        def fly(self):
            print("我会飞")
    
        def bark(self):
            print("神一样的叫唤...")
            # 使用super(),调用原本在父类中封装的方法
            super().bark()
            print("*%*$**%#*%$*^*$^*$^")
    
    
    xsy = XiaoSongYue()
    
    xsy.bark()
    
    
    1. 子类对象不能在自己方法内部,直接访问父类的私有属性私有方法
    2. 子类对象可以通过父类公有方法间接访问到私有属性私有方法

    多继承

    • 子类可以拥有多个父类,并且具有所有父类属性方法
    class A:
        def test(self):
            print("A---test 方法")
    
        def demo(self):
            print("A---demo 方法")
    
    
    class B:
        def test(self):
            print("B---test 方法")
    
        def demo(self):
            print("B---demo 方法")
    
    
    class C(A, B):
        pass
    
    
    # 创建子类对象
    
    c = C()
    
    c.test()
    c.demo()
    print(C.__mro__)
    
    

    避免父类中出现同名方法,通过__mro__查看执行顺序

    新式类与旧式类

    objectpython为所有对象提供的基类,提供有一些内置的属性和方法,可以使用dir函数查看

    python3.x中如果没有指定父类,默认使用object基类

  • 相关阅读:
    看到就是赚到!Selenium完整框架——告别2017
    《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析
    《selenium2 python 自动化测试实战》(20)——Selenium工具介绍
    《selenium2 python 自动化测试实战》(19)——webdriver错误截图
    《selenium2 python 自动化测试实战》(18)——自动化测试模型(一)
    《selenium2 python 自动化测试实战》(15)——调用js控制滚动条等操作
    《selenium2 python 自动化测试实战》(16)——js操作补充
    《selenium2 python 自动化测试实战》(17)——几个cookies操作
    后缀数组的一些性质----height数组
    hdu1238--Substrings
  • 原文地址:https://www.cnblogs.com/125418a/p/14280130.html
Copyright © 2011-2022 走看看