• Python--day25--面向对象之多态


    多态(Python天生支持多态)

    多态指的是一类事物有多种形态

    动物有多种形态:人,狗,猪

     1 import abc
     2 class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
     3     @abc.abstractmethod
     4     def talk(self):
     5         pass
     6 
     7 class People(Animal): #动物的形态之一:人
     8     def talk(self):
     9         print('say hello')
    10 
    11 class Dog(Animal): #动物的形态之二:狗
    12     def talk(self):
    13         print('say wangwang')
    14 
    15 class Pig(Animal): #动物的形态之三:猪
    16     def talk(self):
    17         print('say aoao')

    文件有多种形态:文本文件,可执行文件

    import abc
    class File(metaclass=abc.ABCMeta): #同一类事物:文件
        @abc.abstractmethod
        def click(self):
            pass
    
    class Text(File): #文件的形态之一:文本文件
        def click(self):
            print('open file')
    
    class ExeFile(File): #文件的形态之二:可执行文件
        def click(self):
            print('execute file')

    多态的表现形式:

    鸭子类型:(Python中有鸭子类型,而其他语言如Java没有,所以Python不重尚通过继承对代码进行规范,Python重尚鸭子类型,就像list和tuple这两个这么相似的数据类型都没有用继承---可作为面试时面试官叫你解释一下设计模式接口类的回答)

    例子的代码中List和Tuple就是鸭子类型:

    ps:python不重尚多态

  • 相关阅读:
    servlet&jsp高级:第四部分
    servlet&jsp高级:第三部分
    servlet&jsp高级:第二部分
    servlet&jsp高级:第一部分
    Servlet&jsp基础:第四部分
    Servlet&jsp基础:第三部分
    Servlet&jsp基础:第二部分
    Servlet&jsp基础:第一部分
    关于各地区并发高的解决思路
    Intellij IDEA使用restclient测试
  • 原文地址:https://www.cnblogs.com/xudj/p/9919957.html
Copyright © 2020-2023  润新知