1、什么是多态:
它是指同一种事物的多种形态,在程序中用继承可以表现出多态。
多态性:可以在不考虑具体类的情况下,直接参考基类的标准来使用对象。
但在python中推崇鸭子类型。它不但解藕合,且能建立标准。
2、为什么要用多态:
用基类创建一套统一的规则,强制子类去遵行(用抽象类去实现)这样可以不用考虑具体类型的前提下而直接使用对象下的方法。
3、如何使用:
来看下面的一段代码。
class Animal:
def run(self):
pass
def bark(self):
pass
class Cat(Animal):
def jiao(self):
print('喵喵喵')
class Dog(Animal):
def speak(self):
print('汪汪汪')
class Pig(Animal):
def han(self):
print('哼哼哼')
c=Cat()
d=Dog()
p=Pig()
#调用不同具体动物叫的时候就用不同实现方法。
c.jiao()
d.speak()
p.han()
如上代码在调用不同具体动物叫的时候就用不同的调用方法。这样子不态好,很乱,没有规范。我们就要用多态来给它弄个规,凡是动物叫,就都用bark()来调用。这样就很清楚明了。
import abc
class Animal(metaclass=abc.ABCMeta):
@abc.abstractclassmethod
def bark(self):
pass
@abc.abstractclassmethod
def drink(self):
pass
class Cat(Animal):
def drink(self):
print('cat is dering')
def bark(self):
print('cat is barking')
class Dog(Animal):
def drink(self):
print('dog is dering')
def bark(self):
print('dog is barking')
c=Cat()
d=Dog()
c.bark()
d.bark()