什么是多态
同一事物的多种形态
为何要用多态
多态性:指的是可以不用考虑对象具体类型的前提下直接使用对象的方法
如何使用多态
多态一般由继承来实现,但是不一定有继承关系来实现。
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('哼哼哼')