zoukankan      html  css  js  c++  java
  • 2.28继承

    #__authon: yeweijian.scarfgw
    #date: 2020/2/28
    #继承: 这里是对象的继承,对象属性表现上来讲可以继承,但是本质上只是继承了父类的方法;
    # 子类继承父类的公有属性本质上是因为继承了父类的init方法的问题 后续方法重写中会提及
    #注意父类的私有属性私有方法都不能继承
    #注意父类子类皆有某一个方法是,都会优先使用子类中的方法
    class Animal:
        def __init__(self,name):
            print('对象的初始化')
            self.name = '这里是animal的name属性'
        def eat(self):
            print('能吃的动物')
        def run(self):
            print('能跑的动物')
    
    
    class Cat(Animal):
        def __init__(self):
            print('猫初始化')
        def catch(self):
            print('---抓老鼠---')
    
    
    cat = Cat()
    print(cat)
    print(cat.name) #此处报错!!!!!
    #output:
    # 猫初始化
    # File "C:/Users/Administrator/PycharmProjects/untitled3/study/2.28继承.py", line 26, in <module>
    #<__main__.Cat object at 0x00000000026F9188>
       # print(cat.name)
    #AttributeError: 'Cat' object has no attribute 'name'
    
    #报错解析:对象实例化中,当继承父类中存在init方法,本身还存在init方法时,优先调用自身的init方法
    
    
    
    """-------------------------------------------------------------------------------"""
    
    
    
    class  Dog(Animal):
        def __init__(self,name):
            self.name = name
            print('狗的初始化')
        def set_name(self):
            print('狗的名字是%s'%self.name)
    d = Dog('小白')
    d.eat()
    d.run()
    d.set_name()
    """狗的初始化
    能吃的动物
    能跑的动物
    狗的名字是小白
    小白
    """
    class Zangao(Animal):
        def fight(self):
            print('好斗的属性')
    z =  Zangao('xiaohei')
    z.eat()
    '''output:
    对象的初始化
    能吃的动物'''
    
    #单个继承:当前类没有方法,会寻找父类中的方法
     
  • 相关阅读:
    JDBC事务--软件开发三层架构--ThreadLocal
    SQL查询-约束-多表
    SQL基本语法总结
    DDL
    ZOJ 1178 Booklet Printing
    ZOJ 1107 FatMouse and Cheese
    ZOJ 1099 HTML
    ZOJ 1041 Transmitters
    ZOJ 1095 Humble Numbers
    ZOJ 1105 FatMouse’s Tour
  • 原文地址:https://www.cnblogs.com/yescarf/p/12907062.html
Copyright © 2011-2022 走看看