zoukankan      html  css  js  c++  java
  • 第53天python学习面向对象多态

    #多态:是有继承来的
    #多态:由不同的类实例化得到的对象,调用一个方法,执行的逻辑不同
    #多态的概念:指出了对象如何通过他们共同的属性和动作来操作及访问,而不需要考虑他们具体的类
    #多态是反映运行时候的一种情况,python本身就是一种多态
    #python本身就是一种多态代码例子如下:
    #我们经常看到的执行情况
    # li=[1,2,4,9]
    # print(len(li))
    # str="asdlasjdlas"
    # print(len(str))
    #
    # #python时间运行情况
    # li=[1,2,4,9]
    # print(li.__len__())
    # str="asdlasjdlas"
    # print(str.__len__())

    #li 和 str虽然不是相同的对象,但是可以调用方法__len__方法

    #多态的例子
    class H2O:
    def __init__(self,name,shuizhuantai):
    self.name=name,
    self.shuizhuantai=shuizhuantai

    def turn_ice(self):
    if self.shuizhuantai<0:
    print("[%s]温度太低结冰了"%self.name)
    elif self.shuizhuantai>0 and self.shuizhuantai<100:
    print("[%s]液化成水"%self.name)
    elif self.shuizhuantai>100:
    print("[%s]温度太高变为水蒸气"%self.name)

    class Water(H2O):
    pass
    class Ice(H2O):
    pass
    class Steam(H2O):
    pass

    #实例化
    W1=Water("水",30)
    I= Ice("冰",-24)
    S=Steam("水蒸气",200)

    #水不同形态但是他可以调用相同方法,执行结果不一样。。。。到这一步才体现多态的意图。不调用就没有意思
    # W1.turn_ice()
    # I.turn_ice()
    # S.turn_ice()

    #定义一个统一的接口
    def fun(obj):
    obj.turn_ice()

    fun(W1)
    fun(I)
    fun(S)
  • 相关阅读:
    webpack常见的配置项
    详解javascript立即执行函数表达式(IIFE)
    javascript闭包—围观大神如何解释闭包
    hubilder打包+C#服务端个推服务实现
    vue学习笔记1-基本知识
    javascript中的字典
    javascript中获取元素尺寸
    php常见知识
    javascript中使用循环链表实现约瑟夫环问题
    ASP.NET Core 中的文件上传
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11688750.html
Copyright © 2011-2022 走看看