• 面向对象 多态


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

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

     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 [冰] 温度太低结成冰

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

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

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

  • 相关阅读:
    POJ 1201 Intervals 差分约束
    netframework2.0,asp.net2.0,vs.net 2005
    学习.net第一天
    VS.NET 2003 控件命名规范
    .Net生成共享程序集
    汉字的编码
    [转]用C#实现连接池
    SQL表自连接用法
    一道很好玩的OOP面试题,今天比较有空,所有做了一下
    C#编程规范(2008年4月新版)
  • 原文地址:https://www.cnblogs.com/ch2020/p/12433274.html
Copyright © 2020-2023  润新知