zoukankan      html  css  js  c++  java
  • python 面向对象编程的三大特征之一 多态

    多态就是具有多种形态,即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法。

    在运行过程中根据变量所引用的对象的类型,动态决定调用哪个对象中的方法。
    如果子类中不存在指定名称的方法,回到父类中查找,如果父类中找到了,则调用父类中的方法。


    多态的作用是什么呢?

    我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。
    而多态则是为了实现另一个目的——接口重用!


    
    class Animal(object):
        def __init__(self, name):
            self.name = name
    
        def talk(self):
            print("Animal talk! ")
    
    
    class Cat(Animal):  # 继承 Animal
        def talk(self):
            print("%s: 喵喵喵!" % self.name)
    
    
    class Dog(Animal):  # 继承 Animal
        def talk(self):
            print("%s: 汪汪汪!" % self.name)
    
    
    def func(parent):  # 定义一个函数 func , 但不知道变量 parent 的类型。一个接口,多种形态
        parent.talk()
    
    
    c = Cat("毛毛")
    d = Dog("憨憨")
    
    func(c)  # 毛毛: 喵喵喵!
    func(d)  # 憨憨: 汪汪汪!
    

    编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,

    把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物, 与不同的具体事物进行对话,

    对不同类的对象发出相同的消息将会有不同的行为。

  • 相关阅读:
    Git教程
    Android 使用AIDL调用外部服务
    Android 不同文件名介绍
    详解Android首选项框架ListPreference
    Android 使用Telephony API
    Android ImageButton android:scaleType
    Java实现二维码QRCode的编码和解码
    java二维码生成与解析代码实现
    Java中转UTC时间字符串(含有T Z)为local时间
    http://www.yihaomen.com/article/java/302.htm
  • 原文地址:https://www.cnblogs.com/wwho/p/15635866.html
Copyright © 2011-2022 走看看