一、多态
多态性指的是同一种事物有多种形态,在python中,存在继承关系,父类的引用指向的是子类对象地址。
二、多态性
对象可以在不用考虑对象具体类型的前提下,而直接使用对象。
优点:同一化,简化对象的使用。
对于开发者:多态性可以提供一套模板(父类),在这个模板基础下,可以进行扩展(子类)
对应使用者:无需考虑使用对象的具体类型
简单版:
python不需要提前声明数据类型,不易察觉,但有多态的这个概念,一个父类可以有多种子类的形态。
class Animal: def speak(self): print('animal speak..') class People(Animal): def talk(self): print('谈话') class Dog(Animal): def wang(self): print('汪汪汪汪汪') class Pig(Animal): def chi(self): print('吃吃吃吃吃') an = Animal() an.speak() an = People() an.talk()
抽象类的定义
让子类必须重写父类的函数
1..import abc
2.在父类()中添加metaclass=abc.ABCMeta
3.在父类要求的函数添加装饰器@abc.abstractmethod
注意:
1.抽象类不能实例化
2.所有的子类必须实现抽象方法
3.抽象方法不能调用其它函数
import abc class Animal(metaclass=abc.ABCMeta): def ss(self): pass @abc.abstractmethod def speak(self): print('animal speak..') @abc.abstractmethod def run(self): print('Animal run..') class People(Animal): def talk(self): print('谈话') def speak(self): print('People speak..') def run(self): print('People run..') class Dog(Animal): def wang(self): print('汪汪汪汪汪') def speak(self): print('Dog speak..') def run(self): print('run run..') class Pig(Animal): def chi(self): print('吃吃吃吃吃') def speak(self): print('Pig speak..') def run(self): print('Pig run..')