zoukankan      html  css  js  c++  java
  • Python---面向对象的三大特征

    # 面向对象的三大特征

    - 继承

    - 封装

    - 多态

    # 继承

    - 子类可以使用父类定义的内容或者行为等

    - 继承的实现

      - 父类:基类,超类:被继承的类, Base Class, Super Class

      - 子类:有继承行为的类

      - 所有类都必须有一个父类

        - 如果没有,则默认为是object的子类

        - 子类可以有多个父类

    ----------------------------------------------------

    # 所有类必须有父类
    # 默认是object
    class Person1():
    pass

    class Person2(object):
    pass

    class Person():
    name = "NoName"
    age = 0

    #父类写在类定义的时候的括号里
    class Teacher(Person):
    pass

    t = Teacher()
    print(t.name)

    class Bird():
    fly = "Yes, we can"
    def flying(self):
    print("飞呀飞呀")

    class BirdMan(Person, Bird):
    pass

    bm = BirdMan()
    bm.flying()
    print(bm.name)


    #### issubclass检测是否是子类
    #### 可以用来检测两个类的父子关系

    ## 利用刚才定义的Bird, Birdman, Person, Teacher, 检测父子关系

    print(issubclass(BirdMan, Bird))
    print(issubclass(BirdMan, Person))
    print(issubclass(BirdMan, Teacher))
    --------------------------------------------------
    # 构造函数
    # 在函数实例化的时候调用的一个函数
    # 自动调用
    # 要求,第一个参数必须有,一般推荐self
    # 不能有return


    #构造函数默认继承
    class Person():
    def __init__(self, name, age):
    print("Person=({}, {})".format(name, age))

    class Teacher(Person):
    pass

    t = Teacher()
    ---------------------------------
    # 所有类必须有父类
    # 默认是object
    class Person1():
    pass

    class Person2(object):
    pass

    class Person():
    name = "NoName"
    age = 0

    #父类写在类定义的时候的括号里
    class Teacher(Person):
    pass

    t = Teacher()
    print(t.name)

    class Bird():
    fly = "Yes, we can"
    def flying(self):
    print("飞呀飞呀")

    class BirdMan(Person, Bird):
    pass

    bm = BirdMan()
    bm.flying()
    print(bm.name)

    ## help(issubclass())
    #### issubclass检测是否是子类
    #### 可以用来检测两个类的父子关系

    ## 利用刚才定义的Bird, Birdman, Person, Teacher, 检测父子关系

    print(issubclass(BirdMan, Bird))
    print(issubclass(BirdMan, Person))
    print(issubclass(BirdMan, Teacher))

    #### --------------------------------------

    ### 构造函数的继承
    ### 原则上,构造函数默认继承

    # 构造函数
    # 在函数实例化的时候调用的一个函数
    # 自动调用
    # 要求,第一个参数必须有,一般推荐self
    # 构造函数的调用时间:一般认为在实例化的时候第一个被调用
    # 一般不手动调用,实例化的时候自动调用,参数需写入类名称后面的括号中

    #构造函数默认继承
    class Person():
    def __init__(self, name, age):
    print("Person=({}, {})".format(name, age))

    class Teacher(Person):
    pass

    t = Teacher("刘大拿", 28)

    # ----------------------------
    class Bird():
    def __init__(self):
    print("我被调用了")
    return None

    b = Bird()

    # 构造函数2

    class Person():
    def __init__(self, name, age):
    print(name, age)

    p = Person("刘大拿", 19)
  • 相关阅读:
    pandas数据处理攻略
    红黑树
    调用高德地图API(热力图)详解
    python文件操作细节
    mysql windows安装资源
    机器学习数据集资源
    python3.6+linux服务器+django1.11连接MYSQL数据库
    django2.0+linux服务器 ,如何让自己电脑访问
    Python笔记
    深度学习之无监督训练
  • 原文地址:https://www.cnblogs.com/niaocaizhou/p/11103186.html
Copyright © 2011-2022 走看看