面向对象-初简介4

面向对象

三、多态:

  值得是一种事物多种形态

  例如:动物有多种形态 人、狗、猪、。。等

 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本身就是支持多态性的:

    1、加了程序的灵活性

    2、增加了程序额可扩展性

 鸭子类型:

  Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’

  python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象

  也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。 

猜你喜欢

转载自www.cnblogs.com/lishun412/p/9169103.html