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

    什么是多态

    同一事物的多种形态

    为何要用多态

    多态性:指的是可以不用考虑对象具体类型的前提下直接使用对象的方法

    如何使用多态

    多态一般由继承来实现,但是不一定有继承关系来实现。

    class Animal:
        def speak(self):
            pass
        
    class People(Animal):
        def speak(self):
            print('say hi')
    
    class Dog(Animal):
        def speak(self):
            print('wangwang')
    
    class Pig(Animal):
        def speak(self):
            print('henhen')

     实现效果

    person1 =People()
    dog1= Dog()
    pig1=Pig()
    person1.speak()
    dog1.speak()
    pig1.speak()
    #say hi
    #wangwang
    #henhen

    像是Python的len()对于多个数据类型(类)有效就是多态的表现

    def speak(animal):
        animal.speak()
    
    speak(person1)
    speak(dog1)
    speak(pig1)

    由继承父类模板

    import abc
    
    class Animal(metaclass=abc.ABCMeta):
        @abc.abstractmethod
        def speak(self):
            pass
    
    # Animal() # 父类不能实例化,因为父类本身就是用来制定标准的
    class People(Animal):
        def speak(self):
            print('say hello')
        # def jiao(self):
        #     print('say hello')
    
    class Dog(Animal):
        def speak(self):
            print('汪汪汪')
    
    class Pig(Animal):
        def speak(self):
            print('哼哼哼')
  • 相关阅读:
    JS中attribute和property的区别
    px(像素)、pt(点)、ppi、dpi、dp、sp之间的关系
    计算几何
    动态凸包
    斜率DP题目
    斜率DP个人理解
    后缀数组题目
    CF#190DIV.1
    MANACHER---求最长回文串
    扩展KMP题目
  • 原文地址:https://www.cnblogs.com/msj513/p/9844358.html
Copyright © 2011-2022 走看看