多态与多态性

发布时间:2019-03-02 10:49:08编辑:auto阅读(1936)

    1. 什么是多态

        多态指的是同一种/类事物的不同形态

    2.为何要用多态性

      1 增加了程序的灵活性

      2 增加了程序的可扩张性

    多态性:分为静态多态性和动态多态性

        多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象

        多态性的精髓:统一

    3. 如何用多态

    class Animal:
        def speak(self):
            pass
    class People(Animal):
        def shuo(self):
            print('say hello')
    class Dog(Animal):
        def jiao(self):
            print('汪汪汪')
    class Pig(Animal):
        def chang(self):
            print('哼哼哼')
    obj1=People()
    obj2=Dog()
    obj3=Pig()
    # obj1.speak()
    # obj2.speak()
    # obj3.speak()
    def speak(animal):
        animal.speak()
    speak(obj1)
    speak(obj2)
    speak(obj3)

    python 崇尚鸭子类型

    逗比时刻:

      Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

    python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

    也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。

    例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法

    class Disk:
        def read(self):
            print('Disk read')
    
        def write(self):
            print('Disk write')
    
    
    class Memory:
        def read(self):
            print('Mem read')
    
        def write(self):
            print('Mem write')
    obj1=Disk()
    obj2=Memory()
    
    obj1.read()
    obj2.read()
    View Code

     

关键字