一提到面向对象,多数人都能随口说出继承,封装,多态三个特点,但这几种特性具体有什么好处,有什么缺点,我想这些需要好好的捋一捋才好,形成一个系统的知识,以便达到见微知著的效果。
拿java语言来说吧。
继承:
1、主要是为了多态的实现,借助继承可以实现向上转型,利用多态的好处
2、继承是一种复用父类的方式,但不常用,一般不涉及第一个原因,采用组合的方式为好
封装:
1、将方法和成员变量封装在一起形成具有特定属性和行为的类,是实现面向对象编程中对象这一概念的基础
2、可以控制类内成员的访问权限,实现安全性的要求,该知道的知道,不该知道的不要知道
3、提高类的可重用性
4、提高类的内聚性,可以让一个类封装成只具有单一的功能
5、提高可维护性,封装可以隔离错误,可以使查找错误的粒度变小,易于调试和修改
多态:
1、多态通过继承或者实现接口实现
2、多态使程序更具扩展性
3、多态使程序代码的组织更清晰,更易维护
这只是三个特性基本的内容,要想体现和感受面向对象的强大,还要涉及接口,设计原则,设计模式等很多内容,需要在实践中摸索,总结,才能有更深的体会。