python基础day-17:面向对象基础
python基础day-18:面向对象进阶
面向对象的四大支柱
抽象(abstraction)
定义类需要做数据抽象和行为抽象
封装(encapsulation)
将数据和操作数据的方法绑定到一起
将实现细节隐藏,暴露简单的调用接口
继承(inheritance)
多态(polymorphism)
对象接收到相同的消息,但表现出不同的行为
-
抽象类
- 不能创建对象的类,不能实例化
- 专门用来让其它类来继承
-
元类(meta-class)
- 描述类的类
- 类本身也是对象,该对象由元类创建
- 元数据:描述数据的数据
-
继承(inheritance)
- 从已有的类创建新类的过程
- 提供继承信息的称为父类(基类)
- 得到继承的信息称为子类(派生类)
-
多态(polymorphism)
- 子类在继承父类的过程中,可以对父类已有的方法进行重写(override)
- 不同的子类可以给出不同的实现版本,那么这个方法在运行时就会表现出多态行为
from abc import ABCMeta, abstractmethod
# abstract class
import random
import string
class Employee(metaclass=ABCMeta):