抽象类

1.什么是接口

  接口是给使用者来调用自己功能的一种方式

2. 为何要用接口

  接口提供了一些共有的函数,可以把接口当做一个函数的集合

然后让子类去实现接口中的函数。

这么做的意义在于归一化,什么叫归一化,就是只要是基于同一个接口实现的类,那么所有的这些类产生的对象在使用时,从用法上来说都一样。

归一化的好处在于:

  1. 归一化让使用者无需关心对象的类是什么,只需要的知道这些对象都具备某些功能就可以了,这极大地降低了使用者的使用难度。
  2. 归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合

抽象类

1 什么是抽象类

与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化

2 为什么要有抽象类

如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。

从设计角度去看,如果类是从现实对象抽象而来的,那么抽象类就是基于类抽象而来的。

  从实现角度来看,抽象类与普通类的不同之处在于:抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。这一点与接口有点类似,但其实是不同的

import abc
class People(metaclass=abc.ABCMeta):  #使用ABC模块,定义统一化
    @abc.abstractmethod #装饰器修饰改方法在子类中必须要有
    def eat(self):
        pass
    @abc.abstractmethod
    def run(self):
        pass


class Teacher(People):

    def eat(self):
        print('')

    def run(self):
        print('')
原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10201839.html