zoukankan      html  css  js  c++  java
  • 面向对象进阶(1)

    类的继承

    什么是类的继承

    类的继承是一种新建类的方式,分为父类和子类,子类可以拿到父类的特征和方法

    class Foo:
        def __init__(self,first_name,money):
            self.first_name = first_name
            self.money = money
        def dahulu(self):
            print('呼噜噜')
            
    class FooSon(Foo):
        pass
    
    son1 = FooSon('毛',10)
    print(son1.money)
    
    10
    

    即使子类中没有此特征,只要是父类中有,子类一样可以拿到使用

    为什么要使用继承

    可以减少重复,对于使用同一套特征和方法的对象不用重复定义

    继承后的查找顺序:先自己,再类,再父类,再父类,父类找完之后再父类的父类

    类的派生

    类的派生意思是在添加新的属性的同时还继承父类的所有东西

    super()的使用:

    如果子类没有自己的__init__方法,则无需使用super()

    如果子类有自己的__init__方法,则需要使用super()来声明继承哪一个父类的__init__

    class Foo:
        def __init__(self,first_name,money):
            self.first_name = first_name
            self.money = money
        def dahulu(self):
            print('呼噜噜')
            
    class FooSon(Foo):
        def __init__(self,age,first_name,money):
            super().__init__(first_name,money)
            self.age = age
    son1 = FooSon(18,'毛',10)
    print(son1.money)
    
    10
    

    菱形继承

    菱形继承就是一个子类继承了多个父类,这些父类中有多个又继承于同一个父类

    新式类:继承了object的类就是新式类,python3中所有类都是新式类

    经典类:没有继承object的类就是经典类,只有python2中有经典类

    菱形继承时新式类和经典类搜索顺序不同

    经典类:深度优先

    意思就是会沿着先后顺序沿着父类顺藤摸瓜一直找到最初的父类,如果找不到就再进行下一个藤的顺藤摸瓜

    新式类:广度优先

    意思就是开始也是在沿着先后顺序沿着父类顺藤摸瓜,但在摸到最初一层的父类时先不会去寻找,而是换一个藤继续,最后再找最初的父类

    多态与多态性

    多态:多种状态,只要大家能继承同一种东西A,这些东西就都是A的多态

    例如:液态水冰水蒸气都是水的多态

    import abc和@abc.abstractmethod

    abc是一个模块,@abc.abstractmethod是这个模块的一个方法,它的作用是:

    在定义类A中加在类的某个方法的上方时会做一个限定:只要同样具有这个方法的类就是A的一种形态,才能使用A中的特征和方法,相当于是一个在使用类前的验证身份环节

    鸭子类型

    长得像鸭子,叫声也像鸭子,那就是鸭子

  • 相关阅读:
    在CMD下如何搜索某个名字的文件?
    如何设置ESXi中的虚拟机随主机一同启动?
    ubuntu 安装 Cmake(转)
    unique_ptr与std::move的使用
    这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)(转)
    Tensorflow设置显存自适应,显存比例
    Protobuf学习
    tensorflow serving 打印调试log
    Linux下监视NVIDIA的GPU使用情况(转)
    tensorflow serving GPU编译问题
  • 原文地址:https://www.cnblogs.com/acate/p/11051714.html
Copyright © 2011-2022 走看看