zoukankan      html  css  js  c++  java
  • 继承(初识继承,继承的进阶)

    1,面向对象的三大特性:继承,多太,封装

    • 1.1>继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个个父类,父类又可成为基类或超类,新建的类称为子类或派生类.
    class Animal:
        breath = "呼吸"
    
        def __init__(self, name, sex, age):
            self.name = name
            self.sex = sex
            self.age = age
    
    
    class Cat(Animal):  # 括号里边的叫父类,基类,超类,括号外面的是子类和派生类
        def __init__(self):
            pass
    
        def jiao(self):
            print("喵喵叫")

    2,初识继承:

      2.1>子类以及子类实例化对象也可以访问父类的恩和方法或变量.

        2.1.1子类实例化访问父类的方法:

    结果如下:

    • 访问父类中的变量   print(d.breath).............................................此时打印的结果是:呼吸
      • 2.1.2>子类可以访问父类的所有内容
        • print(Dog.breath).....................................此时打印的结果是:呼吸
        • print(Dog.pao())........................................此时打印的结果是:都可以奔跑

    3,查询顺序:

    4,通过子类对象去只执行父类的方法:子类中不要定义与父类同名的方法

    • 通过子类对象去只执行子类的方法:只需要在子类建立这个方法
    • 既要执行子类的方法,又要执行父类的方法有以下2中方法:
    class Animal:
        breath = "呼吸"
    
        def __init__(self, name, sex, age):
            self.name = name
            self.sex = sex
            self.age = age
    
    
    class Cat(Animal):  # 括号里边的叫父类,基类,超类,括号外面的是子类和派生类
        def __init__(self, name, sex, age, paws):  # 第一种方法引用父类类名去执行父类中的构方法
            super().__init__(name, sex, age, )  # 第二种用super.()内置函数去执行父类中方法
            self.paws = paws
    
        def jiao(self):
            print("喵喵叫")
    c = Cat("加菲猫","",2,"梅花爪")
    print(c.__dict__)  # 此时打印的结果是{"name":"加菲猫","sex":"公","age":2,"paws":"梅花爪"} 

    5,继承的进阶

    • 5.1>继承的分类:单继承,多继承
      • 单继承:一个父类对应一个子类
      • 多继承:一个子类与多个父类想对应
    • 5.2>类的分类:经典类,新式类
      • 新式类:凡是继承object类都是新式类,在python3x中所有的类都是新式类,因为python3x中的类都默认继承object
      • 经典类:不继承object类都是经典类,在python2x中(既有新式类,又有经典类)所有类默认都不继承object类,所有的类都是经典类,你可以让其继承object类,在类名后加一个(object)即可
    • 新式类,经典类查询顺序一样
    • 5.3>多继承:
      • 新式类:遵循广度优先
      • 经典类:遵循深度优先
    • 多继承的新式类:广度优先,一条道走到倒数第二级,判断,如果其他路能走到终点,则返回走另一条路,如果不能,则走到终点.广度优先可以用类名.mro()去查询广度优先的路径print(F.mro())

      多继承经典类 深度优先:一条路走到底

    • 5.4>继承到的好处:
      • 1>提高了代码的服用率
      • 2>提高了代码的维护性
      • 3>让类与类之间产生了关系,是多的态前提     
  • 相关阅读:
    关于android的一些博文收集
    关于Synchronized关键字锁住对象的嵌套问题
    eclipse个人觉得有用的快捷键
    关于android 数据库查询出现 _id column do not exist 的处理
    【转】经典网文:追MM与设计模式
    Maven学习总结(28)——Maven+Nexus+Myeclipse集成
    Spring MVC学习总结(9)——Spring MVC整合swagger自动生成api接口文档
    Windows学习总结(7)——学会CMD命令提示符的重要性
    ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
    SVN学习总结(3)——分支合并
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/9378728.html
Copyright © 2011-2022 走看看