面向对象编程的优势和他的三个特征分不开:封装性、继承性和多态性。
封装性就是把对象的属性和方法结合成一个独立的单位,并尽可能隐蔽对象的内部细节,对象的使用者只是通过预先定义的接口关联到某一对象的行为和数据,而无须知道其内部细节。
继承的本质是在已有的类的基础上进行扩充或改造,得到新的方法,以满足新的需要。当一个类A能够获取另一个类B中所有非私有的成员属性和行为时,就称这两个类之间具有继承关系。被继承的类B成为父类或超类(superclass)继承了父类或超类的属性和行为的类A成为子类(subclass)。使用继承的好处是对于相同的部分的属性和行为只需编写一次,这样可以降低代码编写中的冗余度,更好的实现代码的复用功能,从而提高效率,由于降低了代码的冗余度,从而使得程序的维护非常方便。
继承的本质是在已有的类的基础上进行扩充或改造,得到新的方法,以满足新的需要。
当一个类A能够获取另一个类B中所有非私有的成员属性和行为时,就称这两个类之间具有继承关系。
被继承的类B成为父类或超类(superclass)继承了父类或超类的属性和行为的类A成为子类(subclass)。
使用继承的好处是对于相同的部分的属性和行为只需编写一次,这样可以降低代码编写中的冗余度,更好的实现代码的复用功能,从而提高效率,由于降低了代码的冗余度,从而使得程序的维护非常方便。
多态性一般是指在父类中定义的方法被子类继承后,可以表现出不同的行为。这使得同一个方法在父类及其各个子类中具有不同的语义。
万事万物皆对象,所有的对象被赋予属性和方法,使人们的编程与实际的世界更加接近,结果编程就更加富有人性化。对象有良好的封装性,无需知道内部细节。
类是作为一个独立实体而存在的,可以方便提供给其他程序使用。
由于继承、多态等特性,使得很容易在原先的功能上做扩展和改造。这些特性为我们设计出高内聚、低耦合的系统结构提供了便捷。
面向对象编程的程序通常会比面向过程编程慢,因为有许多多余数据结构和指令需要执行。
在面向对象编程之前需要花很大的经历去规划和设计类。
并不能解决所有场景问题:面向对象编程并不能解决所有问题,那些比较适合用面向过程编程解决的场景,例如关注的是事件和行为比较适合