zoukankan      html  css  js  c++  java
  • Python合集之面向对象(五)

        在编写类时,并不是每次都要从空白开始,当要编写的类和另一个存在的类之间存在一定的继承关系时,就可以通过继承来达到代码重构的目的,提高开发效率。

    1.继承的基本语法

    继承是面向对象编程最重要的特性之一,他源于人们认识客官世界的过程,是自然界普遍存在的一种现象。在程序设计中,实现继承,表示这个类拥有他继承的类的所有共有成员或者受保护成员,在面向对象编程中,被继承的类称为父类,新的类称为子类或者派生类。

    通过继承不仅可以实现代码的重用,还可以通过继承来理顺与类之间的关系,在Python中,可以在类的定义语句中,类名右侧使用一对小括号将要继承的基类名称括起来,从而实现类的继承,具体的语法格式如下:

    class ClassName(baseclasslist):
        '''类的帮助信息'''
        statement
    参数说明:
    ClassName:用于指定类名
    baseclasslist:用于指定要继承的基类,可以有多个,类名之间用逗号隔开,如果不指定,将使用所有Python对象的基类object。
    '''类的帮助信息''':用于指定类的文档字符串,定义该字符串后,在创建类的对象时,输入类名和左侧的括号后,将显示该信息
    statetmet:类体,主要由类变量,方法或者属性等定义语句组成,如果在定义类时,没想好类的具体功能,也可以在类体重直接使用pass语句代替。
    class Fruit:
        color='绿色'
        def harvest(self,color):
            print("水果是:"+color+"")
            print("水果已经收获")
            print("水果原来是:"+Fruit.color+"")
    class Apple(Fruit):
        color="红色"
        def __init__(self):
            print("我是苹果")
    class Orange(Fruit):
        color="橙色"
        def __init__(self):
            print("我是橘子")
    apple=Apple()
    apple.harvest(apple.color)
    orange=Orange()
    orange.harvest(orange.color)        

    2.方法重写

    基类的成员都会被派生类继承,当基类中的某个方法不完全适用于派生类时,就需要在派生类中重写父类的这个方法。

    在上面的例子中,基类定义了harvest()方法,无论派生类时什么水果,都显示“水果。。。”,如果想要针对不同水果给出不同的提示,可以在派生类中重写harveset()方法。

    class Orange(Fruit):
        color="橙色"
        def __init__(self):
            print("我是橘子")
        def harvest(self,color):
            print("橘子是:"+color+"")
            print("水果已经收获")
            print("橘子原来是:"+Fruit.color+"")
          

    花絮:

    本期的Python 面向对象就分享到这里,下期我们将继续分享Python面向对象的相关知识,感兴趣的朋友可以关注我。

    同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

  • 相关阅读:
    关于搭建系统直播和Thinkphp的杂谈(持续更新)
    linux下phpstudy的搭建以及网站的搭建
    java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
    IntelliJ IDEA 破解
    遍历表格
    Ajax简单示例
    [转shasiqq]@Param 注解在Mybatis中的使用 以及传递参数的三种方式
    一些python学习的链接
    python Scrapy安装错误解决
    SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoade
  • 原文地址:https://www.cnblogs.com/a-mumu/p/14619632.html
Copyright © 2011-2022 走看看