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('哼哼哼')
  • 相关阅读:
    为什么ip层收到的报文可能已经设置了路由
    由socket fd泄漏想到的一些问题
    Html.DropDownLis绑定数据库
    CSS 属性备注
    获取IP
    读取TXT并筛选数据写入新建TXT
    C#打印图片
    C#生成二维码
    NPOI操作Excel
    Bootstrap
  • 原文地址:https://www.cnblogs.com/msj513/p/9844358.html
Copyright © 2011-2022 走看看