#什么是多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同
#多态体现在由一个类实例化出多个对象,这些对象执行相同的方法时,执行的过程和结果不一样--不同的对象调用相同的方法
#多态的概念指出来对象如何通过他们共同的属性和动作来操作及访问,而不需考虑具体的类 # 多态继承有两层意义:1.改变 2.拓展
# 多态就是类的这两层意义的一个具体的实现机制,即,调用不同的类实例化得对象下的相同的方法,实现的过程不一样
#
# python中的标准类型就是多态概念的一个很好的示范 class Water:
def __init__(self,name,templte):
self.name=name
self.templte=templte def turn_ice(self): if self.templte>=100:
print("%s这是水蒸气"%self.name) elif self.templte > 0:
print("%s 这是水" % self.name) elif self.templte<0:
print("%s这是冰"%self.name) class New_water(Water):
pass class Qi(Water):
pass class Ice(Water):
pass w1=New_water("水",30)
q1=Qi("水蒸气",200)
i1=Ice("冰",-10) # w1.turn_ice()
# q1.turn_ice()
# i1.turn_ice() def func(obj):
obj.turn_ice() func(w1)#--->w1.turn_ice()

python面向对象的三大特征--多态的更多相关文章

  1. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

  2. Python面向对象的三大特征 --- 封装、继承、多态

    一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person():   def _ ...

  3. python面向对象的三大特征

    1.封装: 封装就是对类和对象的成员访问进行限制,设定可以访问的方式和不可以访问的方式. 分类: 私有化的封装:当前类/对象种可以使用,类/对象外和子类/对象都不可以用 受保护的封装:当前类/对象和子 ...

  4. 【java基础】面向对象的三大特征---多态

    java的引用变量有两种类型,编译时类型和运行时类型,如果编译时类型和运行时类型不一致,就会出现多态. 多态分为: 运行时多态 java运行时系统根据调用该方法的实例的类型来决定选择调用哪个方法则被称 ...

  5. python 面向对象的三大特征之 继承

    #继承 #object 基类,是python定义的所有类的父类 #经典类:不继承object的类称作经典类 #新式类:继承object的类称作新式类 #python 3.x统一为新式类 #经典类是类对 ...

  6. python ----面向对象的三大特性---多态

    多态 多态 不同的子类对象调用相同的父类方法,产生不同的执行结果. 以继承和重写父类方法为前提

  7. python面向对象的三大特征--封装

    #coding:utf-8 __author__="tang" #第一个层面的封装:类就是麻袋,本身就是一种封装 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问 ...

  8. python面向对象的三大特征--继承

    #什么时候用继承 #1.当类之间有显著不同,并且较小的类是较大的类所需的组件时,用组合比较好 #2.当类之间有很多相同的功能,提供这些共同的功能做成基类,用继承比较好 class Dad: " ...

  9. python 面向对象的三大特征之 封装

    封装:私有化 class Person(object): def __init__(self): self.__gender = "man" #在类的属性名称前面加__ self. ...

随机推荐

  1. warp(图像仿射变换)

    仿射变换是一种二维坐标(x,y)到二维坐标(u,v)的线性变换. 对应的齐次坐标矩阵表示形式为: 仿射变换特点: 直线经仿射变换后依然为直线: ’直线之间的相对位置关系保持不变,平行线经仿射变换后依然 ...

  2. Android 快速索引(城市列表和联系人)

    最近需要实现一个城市列表的快速索引功能.类似于联系人应用,根据姓名首字母快速索引功能. 要实现这个功能只需要解决两个问题:1.对列表进行分组(具有同一特征),并且能够快速定位到该组的第一项 2.右侧分 ...

  3. 官方文档翻译-Today

    原文链接: Today 最后更新:2017-02-18 译文: 应用的今日视图扩展被称作小部件.小部件为用户提供快速访问重要信息的入口.例如,用户打开今日视图实时查看股票价格或天气情况,查看今天的日程 ...

  4. 170911-关于maven的知识点

    简介:    什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的. Maven的好处? 节省空间 就是对jar包的统一管理就是对jar包的统一管理,依赖 ...

  5. 微信小程序之登录用户不是该小程序的开发者

    当uniapp项目转为小程序项目的时候,预览会显示“您不是登录用户...”,所以没有办法发布,这个时候打开“project.config.json”设置一下appid,与你公众号appid一致就可以

  6. FlexPaper做的类似百度文库的效果

    这里有个误区,虽然我的截图这里有个FlexPaperViewer.swf,   但是这个文件还是要放在网站根目录一个. <%@ Page Language="C#" Auto ...

  7. GenericAPIView的使用及和视图扩展类的结合使用

    GenericAPIView的使用 from rest_framework.generics import GenericAPIView GenericAPIView继承 APIView,主要增加了操 ...

  8. C#—Nhibernate使用教程

    本篇文章,让我们一起来探索Nhibernate.首先我们去搜索Nhibernate下载地址,如下链接所示.该版本可能是最新版,我下载的4.0.4.GA.其中GA意思我没搞清楚.不过应该不重要.http ...

  9. 解决gson解析long自动转为科学计数的问题

    不废话,直接上代码: public class GsonUtils { public static Gson getMapGson(){ Gson gson=new GsonBuilder().reg ...

  10. idea注册

    1:要先得到一个注册码 http://idea.lanyus.com/ 2:之后需要在引导下 修改文件 使用前请将“0.0.0.0 account.jetbrains.com”添加到hosts文件中