1. 继承
- 继承是面对对象的三大特性之一
- 通过继承我们可以获得另一个类的属性和方法(包括特殊方法)
- 类名.__bases__这个属性可以获取当前类的父类
- 继承的好处是让类与类之间产生了关系,提高了类的复用性
- 方法的重写(子类和父类中出现相同的方法)
- super()可以动态获取当前类的父类
- 多重继承 如果多个父类出现多个相同名字的方法。则会先去第一个父类中寻找,以此类推
2. 多态
- 多态也是面对对象的三大特性之一
- 一个对象可以由不同的形态呈现(多态参考len()函数可以处理不用类型的对象,这个特征就是多态)
3. 面向对象的三大特性
- 封装 确保对象中的数据安全
- 继承 保证对象的扩展性
- 多态 保证了程序的灵活性
4. 属性和方法
- 属性
- 类属性 直接在类中定义的属性
- 类属性可以通过类或类的实例访问到,但是类属性只能通过类对象来修改,无法通过实例对象修改
- 实例属性 通过实例对象添加的属性属于实例属性
- 实例属性只能通过实例对象来访问和修改,类对象无法访问修改
- 方法
- 在类定义,以self为第一个参数的方法都是实例方法
- 实例方法在调用时,python会将调用对象以self传入
- 实例方法可以通过类实例和类去调用
- 在类的内部使用 @classmethod 来修饰的方法属性类方法
- 类方法的第一个参数我们习惯写成cls 也会自动传递
- 静态方法
- 在类中用 @staticmethod 来修饰的方法我们称为静态方法
- 不需要制定任何的默认参数 静态方法可以被类对象和实例对象调用
- 静态方法和类本身无关,就是一个功能函数