多态与多态性

一、多态

  多态性指的是同一种事物有多种形态,在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..')
原文地址:https://www.cnblogs.com/linbin7/p/11124568.html