(八股)面向对象
面向对象更易于复用、扩展和维护
比如:洗衣机洗衣服
面向对象分为洗衣机和人两个对象
人:打开洗衣机,放衣服,加洗衣液等
洗衣机:打开开关、选择模式等
面向过程更加高效直接
面向过程则会分为一系列步骤(函数):打开洗衣机--放衣服--加水--加洗衣液--选择模式--···
三大特性:封装、继承、多态
封装:明确标示出允许外部使用的所有成员函数和数据项,内部细节对外部调用透明,外部调用无需修改和关心内部实现。
封装把对象的属性和方法包裹起来,只能通过约定好的接口进行访问
封装是一种信息隐藏技术,通过关键字private实现
继承:继承基类的方法,并作出自己的改变和扩展
继承中,子类不可以选择性的继承父类的东西,而是全部继承父类的属性和方法。其中父类又叫超类或基类,子类又叫派生类。父类是子类的一般化,子类是父类的特化(具体化)。
多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行逻辑不同
可以理解为,多态作用范围是“方法”,不是对象不是类,也不是对象的属性
多态产生的条件:
有继承,在子类中有方法的重写,在方法的调用中,有指向子类的基类引用
有方法的重写,即相同方法名,参数不同(个数、类型、顺序)
比如,有一个原神角色类,其中有一个方法,角色使用武器
钟离继承原神角色类后,重写方法输出,得到钟离使用长柄武器
温迪继承原神角色类后,重写方法输出,得到温迪使用弓箭