多态

多态指的是一类事物有多种形态——如:动物有多种形态:人、狗、猪。

多态性

  指在不考虑实例类型的情况下使用实例,多态性分为静态多态性和动态多态性。

静态多态性——任何类型都可以用运算符【+】进行运算。

      eg:字符串+字符串;数字+数字;列表+列表。我们在使用【+】号时也没有考虑类型

动态多态性如下:

# 动态多态性
import abc
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def eat(self):
        pass
    @abc.abstractmethod
    def run(self):
        pass
class Dog(Animal):

    def eat(self):
        print('is eatting' )
    def run(self):
        print('is running')
class Pig(Animal):
    def eat(self):
        print('is eatting')
    def run(self):
        print('is running')

dog1 = Dog()
pig1 = Pig()
dog1.eat()
pig1.eat()

# dog、pig 都是动物,只要是动物都有eat run方法
# 于是我们可以不用考虑它们的具体是什么类型,而直接使用
#更进一步,我们可以定义一个统一的接口来使用
def func(obj):
    obj.eat()

func(dog1)
动态多态性

相关文章: