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('哼哼哼')
  • 相关阅读:
    JavaScript
    monkeyrunner总结
    repo简介
    android4.4 settings 中控制卡1 卡2都振动
    卡1卡2设置不同的默认铃声
    获取布局 ActionBar
    android Settings 解析
    设置应用中出现NFC服务,去掉
    判断当前网络显示运营商
    设置中默认铃声 通知 闹钟等
  • 原文地址:https://www.cnblogs.com/msj513/p/9844358.html
Copyright © 2011-2022 走看看