面向对象的多态
多态特征:一个对象具有多种形态, 在不同的使用环境中以不同的形态展示其功能, 那么我们就称该对象具有多态特征。
- 多态发生在具有继承关系的基础之上。
- 多态不关注对象的类型,只关注对象具有的行为
- 不同的子类对象,调用相同的父类方法,就会有不同的结果。
例如:“+”号,不同的对象使用,就会有不同的结果
第一种多态展示
第二种多态展示
定义统一接线口,一个接口,多种实现。
静态方法和类方法
静态方法
使用装饰器:@staticmethod
定义格式:
class 类名: @staticmethod def 方法名(形参): 方法体
调用格式:
- 类名.方法名(实参)
- 对象名.方法名(实参)
类方法
类方法:针对类对象定义的方法
注意:类方法内部可以直接访问类属性,或者调用其他类方法。
定义格式:
class 类名: @classmethod def 方法名(形参): 方法体
调用格式:
- 类名.方法名(实参)
- 对象名.方法名(实参) 不常用
例1:在实例方法中访问类属性
例2:在类方法中访问类属性
在类方法中访问不了实例属性,会报错。
总结
- 实例方法:方法内部访问实例属性,方法内部可以通过类名、类属性名来访问类属性
- 静态方法:方法内部不需要访问实例属性和类属性
- 类方法:方法内部只需要访问类属性