zoukankan      html  css  js  c++  java
  • 面向对象 多态

    多态:由不同的类实例化得到的对象,调用同一个方法,执行的逻辑不同    即不同的数据有相同的方法或者属性

    多态的概念指出了对象如何通过他们共同的属性和动作来操作及访问,而不需要考虑他们具体的类    例如:

     1 a = '1234'
     2 b = [1,2,3,4]
     3 c = (1,2,3,4)
     4 print(len(a))
     5 print(len(b))
     6 print(len(c))
     7 输出:、
     8 4
     9 4
    10 4

    str()  叫工厂函数

     1 class H2o:
     2     def __init__(self, name, temperature):
     3         self.name = name
     4         self.temperature = temperature
     5 
     6     def temp(self):
     7         if self.temperature <= 0:
     8             print('[%s] 温度太低结成冰' % self.name)
     9         elif self.temperature >= 100:
    10             print('[%s] 温度太高汽化成水蒸气' % self.name)
    11         else:
    12             print('[%s] 温度适中成为水' % self.name)
    13 
    14 
    15 class Water(H2o):
    16     pass
    17 
    18 
    19 class Ice(H2o):
    20     pass
    21 
    22 
    23 class Stream(H2o):
    24     pass
    25 
    26 
    27 def fun(x):
    28     x.temp()
    29 
    30 
    31 w1 = Water('', 50)
    32 s1 = Stream('水蒸气', 120)
    33 i1 = Ice('', -5)
    34 # s1.temp()
    35 # w1.temp()
    36 # i1.temp()
    37 fun(w1)
    38 fun(s1)
    39 fun(i1)
    40 输出:
    41 [水] 温度适中成为水
    42 [水蒸气] 温度太高汽化成水蒸气
    43 [冰] 温度太低结成冰

    不同的类经过实例后,可以调用相同的方法。     可以多态的条件  有一个共同的基类

    不同的类继承了相同的方法这就是多态,   多态就是继承的一种体现方式

    多态实质上是继承的实现细节;那么让多态与封装、继承这两个概率并列,显然是不符合逻辑的。

  • 相关阅读:
    (转)二步实现 远程连接 阿里云SqlServer 2012 数据库服务器
    浅谈C#在网络波动时防重复提交
    面向 Kubernetes 编程: Kubernetes 是下一代操作系统
    C#并行编程(2):.NET线程池
    C#并行编程(1):理解并行
    iOS 动画总结----UIView动画
    iOS开发之各种动画各种页面切面效果
    iOS动画效果和实现
    iOS开发动画(Animation)总结
    iOS开发之传感器
  • 原文地址:https://www.cnblogs.com/ch2020/p/12433274.html
Copyright © 2011-2022 走看看