zoukankan      html  css  js  c++  java
  • Python基础总结之初步认识---class类的继承(下)。第十五天开始(新手可相互督促)

    年薪百万的步伐慢了两天hhhh严格意义是三天。最近买了新的玩具,在家玩玩玩!~~~~

    今天开始正式认识类的继承。类的继承是怎么继承呢?看下代码:

    1 class Animal(object):              #父类
    2     def __init__(self,name):       #构造函数的参数
    3         self.name = name           #实例属性
    4 
    5 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有属性和方法
        pass

    在上面的代码中,父类的名字是:Animal   子类的名字是:Dog    我们不难发现,这行代码就是在说明,Dog这个子类将要继承Animal父类的所有类属性以及实例属性和方法。

    那么问题来了,怎么表示要继承父类的实例属性呢?

    1  Animal.__init__(self,name)         #前面是父类名字,然后点,然后就是构造函数的部分,记住没有def和冒号了。

    记住哦,要写在子类的构造函数的代码块中,因为继承的是父类的构造函数中的实例属性。要分清楚实例属性和类属性是两码事儿

    看下笔记中的完整代码:

     1 class Animal(object):              #父类
     2     def __init__(self,name):       #构造函数的参数
     3         self.name = name           #实例属性
     4 
     5 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有类属性和方法还有实例属性
     6     def __init__(self,name,color,age):    #子类构造函数的参数
     7         Animal.__init__(self,name)        #继承父类Animal中的实例属性name,
     8         self.color = color
     9         self.age = age                                 
    10 
    11     def info(self):
    12        return '它是一只{0},它的毛发是{1},今年{2}岁了'.format(self.name,self.color.self.age)    #返回结果给调用方   #如果是print输出结果,那么函数会默认返回None值
    13 
    14 dog = Dog('小狗','黑色','5')   #实例化对象,赋值
    15 print(dog.info())               #对象调用Dog中的info()方法

    相信如果你看了我所有的文字描述,应该能理解是怎么回事儿了。

    那么子类继承父类的所有类属性和实例属性以及方法后,是必要要全部都用上吗?当然不是,继承的目的是(类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量-----来自梁雪峰老师的笔记哦)所以说继承是为了方便我们用父类的功能代码,这样我们可以少些一部分代码,从而就是可以选择行的使用我们需要的部分啦

    我们看下代码:

     1 '''实例属性的继承----》子类根据需要,不继承父类的实例属性。怎么不继承父类的实例属性呢?'''
     2 
     3 class Animal(object):              #父类
     4     def __init__(self,name):       #构造函数的参数
     5         self.name = name           #实例属性
     6 
     7 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有属性和方法
     8     def __init__(self,color,age):    #子类构造函数的参数
     9         self.color = color
    10         self.age = age
    11 
    12     def info(self):
    13         return '它的毛发是{0},今年{1}岁了'.format(self.color,self.age)    #返回结果给调用方   #如果是print输出结果,那么函数会默认返回None值
    14 
    15 dog = Dog('黑色',5)   #实例化对象,赋值
    16 print(dog.info())               #对象调用Dog中的info()方法

    根据这个代码和上个案例的代码对比发现,虽然子类都继承了父类。但是第二个完整的代码案例中只是表明了我要继承的父类对象是谁,并没有用父类中的任何属性或者方法哦。代码依然是可以执行的,我们看下结果:

    这两个小的案例笔记,消化一下,明天开始继续新的学习笔记~~~~20万的梦想,晚安

  • 相关阅读:
    C语言warning的收集和总结
    HLS:跑马灯实验
    HLS:OpenCV和RTL代码转换关系
    Zynq-7000 FreeRTOS(二)中断:串口Uart中断
    Zynq-7000 FreeRTOS(二)中断:PL中断请求
    Zynq-7000 FreeRTOS(二)中断:Timer中断
    xilinx DMA IP核(二) —— 文档阅读
    Zynq-7000 FreeRTOS(一)系统移植配置
    xilinx DMA IP核(一) —— loop测试 代码注释
    System Verilog基础(二)
  • 原文地址:https://www.cnblogs.com/woshidaliua/p/11324244.html
Copyright © 2011-2022 走看看