zoukankan      html  css  js  c++  java
  • 8、多态与多态性

    1 多态
    多态指的是同一种事物的多种形态

    2 多态性:
    可以在不用考虑对象具体类型的情况下而直接使用对象

    优点:
    归一化,简化对象的使用
    # import abc
    #
    # class Animal(metaclass=abc.ABCMeta):
    #     @abc.abstractmethod
    #     def speak(self):
    #         pass
    #
    #     @abc.abstractmethod
    #     def run(self):
    #         pass
    
    #抽象基类:是用来指定规范,但凡继承该类的子都必须实现speak和run,而名字必须叫speak和run
    #注意:不能实例化抽象基类
    # Animal()
    
    
    # class People(Animal):
    #     def speak(self):
    #         print('say hello')
    #
    #     def run(self):
    #         pass
    #
    # class Dog(Animal):
    #     def speak(self):
    #         print('汪汪汪')
    #
    #     def run(self):
    #         pass
    #
    # class Pig(Animal):
    #     def speak(self):
    #         print('哼哼哼哼哼')
    # #
    #     def run(self):
    #         pass
    # #
    # obj1=People()
    # obj2=Dog()
    # obj3=Pig()
    #
    #obj1,obj2,obj3都是动物
    # obj1.speak()
    # obj2.speak()
    # obj3.speak()
    
    #
    # def speak(animal):
    #     animal.speak()
    #
    #
    # speak(obj1)
    # speak(obj2)
    # speak(obj3)
    
    
    # obj1=[1,2,3]
    # obj2='hello'
    # obj3={'x':1}
    #
    # print(obj1.__len__())
    # print(obj2.__len__())
    # print(obj3.__len__())
    #
    #
    # print(len(obj1))
    # print(len(obj2))
    # print(len(obj3))
    
    
    
    # python崇尚鸭子类型
    
    
    class Txt:
        def read(self):
            print('txt read')
    
        def write(self):
            print('txt write')
    
    
    class Process:
        def read(self):
            print('Process read')
    
        def write(self):
            print('Process write')
    
    
    class Disk:
        def read(self):
            print('Disk read')
    
        def write(self):
            print('Disk write')
    
    
    obj1=Txt()
    obj2=Process()
    obj3=Disk()
    
    
    
    obj1.read()
    obj1.write()
    
    obj2.read()
    obj2.write()
    
    obj3.read()
    obj3.write()
  • 相关阅读:
    linux时间同步,ntpd、ntpdate
    重启HPE管理芯片ILO5的5种方法(Reset ilo)
    Linux内核SPI支持概述
    linux 查看CPU详情命令
    高可用
    NFS的介绍
    SELINUX
    error: undefined reference to 'android::hardware::details::return_status::~return_status()'
    errors collectiions
    大型分布式架构设计与实现-第三章互联网安全架构
  • 原文地址:https://www.cnblogs.com/z-x-y/p/10047498.html
Copyright © 2011-2022 走看看