• 转 python语法学习面向对象之继承


    传送门

    只要涉及到面向对象,”类“是必须出现的一个代名词。

    类和对象是面向对象编程的两个主要方面。创建一个新类型,而对象是这个类的实例。

    类的一些概念:

    包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承。

    继承:

    面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

    需要注意的地方:继承语法   class 派生类名(基类名)://...   基类名写作括号里,基本类是在类定义的时候,在元组之中指明的。这与c#是有区别的。

    何时使用继承:假如我需要定义几个类,而类与类之间有一些公共的属性和方法,这时我就可以把相同的属性和方法作为基类的成员,而特殊的方法及属性则在本类中定义,这样只需要继承基类这个动作,就可以访问到基类的属性和方法了,它提高了代码的可扩展性。

    任何事情都有利有弊:继承的一个弱点就是,可能特殊的本类又有其他特殊的地方,又会定义一个类,其下也可能再定义类,这样就会造成继承的那条线越来越长,使用继承的话,任何一点小的变化也需要重新定义一个类,很容易引起类的爆炸式增长,产生一大堆有着细微不同的子类. 所以有个“多用组合少用继承”的原则,(我觉得两者一起使用才是最佳吧*^◎^*)

    在python中继承中的一些特点:

    1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。有别于C#

    2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数

    3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

    如果在继承元组中列了一个以上的类,那么它就被称作“多重继承” 。

    实例:定义一个模块,模块里定义了一个基类:

     子类:
     
     输出:

     假如在子类中不用__init__()初始化函数,那么子类会继承基类的属性,如: 

    输出:

     
    转自:
    作者:Joan
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Spring:ContextLoaderListener作用
    正确理解UNICODE UTF8等编码方式
    context:propertyplaceholder/元素
    org.springframework.web.context.ContextLoaderListener作用
    javascript下ie7,ie8的Date Bug的解决
    margin负值的几种妙用
    小米note3,华为手机,软键盘弹出之后,页面上定位的元素布局会乱掉
    当padding,margin,top为百分比值,具体数值如何计算
    PHP处理二维数组合并 时间复杂度O(n)
    redis常用操作整理
  • 原文地址:https://www.cnblogs.com/njczy2010/p/5769569.html
Copyright © 2020-2023  润新知