面向对象与面向过程:
面向对象与面向过程是两种不同的编程思想。面向对象更加注重事情有哪些参与者以及这些参与者有哪些行为,通过这些参与者的协调配合最终解决问题。面向过程则注重解决问题的步骤,按部就班地解决问题。引用别人的一个很形象的比喻,面向对象更像是纪传体,而面向过程更像是编年体。
举个例子,比如说洗衣服这件事。用面向对象的编程思想就是,洗衣服需要两个对象“人”和“洗衣机”。“人”有打开洗衣机、放衣服、放洗衣粉三个行为。“洗衣机”有“清洗”、“脱水”两个行为。通过人与洗衣机的配合就能完成洗衣服这件事。而用面向过程的编程思想,则是将洗衣服拆解为打开洗衣机、放衣服、放洗衣粉、清洗、脱水5个步骤。
面向对象与面向过程的对比:
面向对象编程易扩展、易维护、易复用。
面向过程不需要对类进行实例化,在性能上比面向对象高。
面向对象的三大特性:
继承:子类继承父类,对父类进行扩展。使子类个性与共性并存。
封装:封装属性和方法,尽可能地隐藏内部信息并提供接口给外部访问而不必过多关注内部实现细节,从而增加安全性防止内部信息破坏。
多态:引用变量指向的具体类型以及调用的方法在编译期不确定,只有在运行期间才能确定。实现多态的三个必要条件:继承、重写、父类引用指向子类对象。引用下其他博主的例子:
酒 A = 剑南春
酒 B = 五粮液
酒 C = 酒鬼酒
从外面看我们是不可能知道这是些什么酒,只有喝了之后才能够猜出来是何种酒。剑南春、五粮液、酒鬼酒都是酒的子类,我们只是通过酒这一个父类就能够引用不同的子类,这就是多态——我们只有在运行的时候才会知道引用变量所指向的具体实例对象。