OO的特征:
封装: 封装是指隐藏对象的属性和实现细节.封装能为软件系统带来以下优点:
- 便于使用者正确的方便的理解和使用系统,防止使用者错误修改系统的属性。
- 有助于建立各个系统之间的松耦合关系,提高系统的独立性。当某一个系统的实现发生变化,只要它的接口不变,就不会影响到其他的系统。降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。例如相机损坏了,它的干电池依然有用,可以安装到手电筒中。
- 提高软件的可重用性,每个系统都是一个相对独立的整体,可以在多种环境中得到重用。例如干电池就是一个可重用的独立系统,在相机、手电筒、电动剃须刀和玩具赛车中都能发挥作用。
- 降低了构建大型系统的风险,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。例如相机损坏了,它的干电池依然有用,可以安装到手电筒中。
一个设计良好的系统会封装所有的实现细节,把它的接口与实现清晰的隔离开来,系统之间只通过接口进行通信。面向对象的编程语言主要是通过访问控制机制来进行封装,这种机制能控制对象的属性和方法的可访问性。
摘自《Java面向对象编程》一书,作者:孙卫琴 来源:www.javathinker.org
继承VS多态
继承体现的是对象间的共性,父类提供较通用的行为模板,各个子类调用父类的行为,避免冗余,大大提高了代码的可复用性和可维护性;子类可以在父类的基础上扩展自己的行为,提高了程序的可扩展性;
多态建立在继承的基础上,多态就是使得你能够用一种统一的方式来处理一组各具个性却同属一族的不同个体的机制。
多态体现的是各个对象在同一行为上的个性,具体表现为重写,将定义与实现相分离,体现了代码的可扩展性。