什么是面向对象?谈谈你对面向对象的理解
对比面向过程,它们是两种不同的处理问题的角度。
面向过程更注重事情的每一个步骤和顺序,面向对象更注重事情有哪些参与者(也就是对象),以及各自需要做什么。
比如:洗衣机洗衣服
面向过程会将任务拆解成一系列的步骤(函数)
- 打开洗衣机
- 放衣服
- 放洗衣粉
- 洗涤
- 甩干
而面向对象会拆出人和洗衣机两个对象:
人:打开洗衣机 放衣服 放洗衣粉
洗衣机:清洗 甩干
从这个例子可以看出,面向过程比较直接高效,而面向对象更易于复用、扩展和维护。
说到面向对象那肯定要提一下它的三大特性:
封装: 封装的意义在于明确标识出允许外部使用的所有成员函数和数据项。
内部细节对外部调用透明,外部调用无需修改或者关心内部实现。
继承: 继承基类的方法,并作出自己的改变或扩展。
子类共性的方法和属性可以直接复用父类的,而不需要自己定义,只需要扩展自己个性化的方法和属性即可。
多态: 基于对象所属类的不同,外部对同一方法的调用,实现执行的逻辑不同。
当然也要注意一点,它无法调用子类特有的功能。
多态存在有三大条件:继承、方法重写,父类引用指向子类。
多态是方法的多态,属性没有多态性。
父类类型 变量名 = new 子类对象;
变量名.方法名();