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万的梦想,晚安

  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/woshidaliua/p/11324244.html
Copyright © 2011-2022 走看看