美文网首页程序员
python---核心知识12之面向对象三大特性补充

python---核心知识12之面向对象三大特性补充

作者: hello_我的哥 | 来源:发表于2018-03-22 10:43 被阅读109次

    多态的概念:所谓多态,在我们日常生活中有很多体现,比如说动物都有吃东西的行为,但是猪吃东西和鸡吃东西是不是不一样,这两个类别同属于一个动物类,但是各自对于同一行为的表现形式不一样,这其实就是多态;在代码里面其实就是在继承的前提下,不同的子类去调用父类同一个方法,产生不同的结果,这就是多态

    python中的多态;python语言是属于动态语言,也就是duck鸭子语言。只要一个对象,会游泳,会走,会叫,那就可以把它当成鸭子处理,关注点在于对象的行为和属性,而非对象的类型,所以在python中,没有真正意义上的多态,也不需要多态;因为不用多态这种机制就可以实现出多态这种结果,所以python并不需要多态;

    所以其实在python里面的面向对象,其实;最终只有两大特性,就是封装和继承;最后我们再来补充两个概念,就是抽象类以及抽象方法;

    抽象类:就是对普通类的一种抽象;比如说小猫,小狗这两个类,他们都有叫的动作,吃的动作,那我们就可以抽象出一个动物类;这个动物类就是抽象类,动物类具有叫,吃的动作,但是每种动物的具体动作也是不一样的,我们就把吃,叫这两种动作也抽象出来,这样的方法就叫做抽象方法,并且所有的子类必须实现抽象方法;

    通过下面的代码我们可以看出,抽象类和抽象方法需要导入abc模块,抽象类需要设置它的元类为abc.ABCMeta,抽象方法或者抽象属性也要加装饰器;

    最后我们在写一个面向对象的例子:有三个类:猫,狗都有姓名,年龄的属性;猫狗有吃睡玩同样的动作,猫有抓老鼠特殊的工作技能,狗有看家的特殊技能,然后人有宠物这个特殊属性,可以让所有的宠物玩和工作,这就是大概的需求,下面贴出代码:

    代码里面都写有注释啥的,就不详细介绍了;

    相关文章

      网友评论

        本文标题:python---核心知识12之面向对象三大特性补充

        本文链接:https://www.haomeiwen.com/subject/eeinqftx.html