面向对象的三大支柱
- 封装
- 继承
- 多态
封装
隐藏复杂的实现细节,暴露简单的调用接口
继承
从已有类的基础上,创建新类的过程,提供继承信息的称为父类(超类/基类),得到继承信息的类称为子类
1.在创建类时,通过指定metaclass=ABCMeta,一个类声明为抽象类;
2.所谓的抽象类,就是不能创建对象的类,它存在的价值是留给它的子类去继承;
3.经验:我们强烈建议,将用来继承的类声明为抽象类;
4.被abstractmethod包装器修饰的方法是抽象方法;
5.所谓的抽象方法就是没有实现专门留给子类去重新的方法;
6.如果子类没有重新这个方法,那么子类相当于也是抽象类,不能创建对象。
多态
1.给同样的对象发送同样的消息(同样的引用调用同样的方法),做了不同的事情。
2.实现多态最关键的就是子类对父类已有方法进行重写,不同的子类给出不同的实现版本