一、面向对象四大特性
1、封装
定义:隐藏信息或者保护数据访问
方法:利用public,protect,private关键词限制。
意义:数据不被随意修改;仅暴露有限必要接口
2、抽象
定义:隐藏方法实现
方法:利用接口类,抽象类,函数
意义:让调用者只关注功能点不关注实现;修改实现不需要改变定义,减少代码的改动范围
3、继承
定义:类之间的is-a关系
方法:利用extends关键词实现继承
优点:代码复用——相同部分抽取到父类,子类复用
缺点:过度使用继承,导致继承层次过深过复杂,影响代码可读性和可维护性,因为查看这个类的代码需要按照继承关系一层层地往上查看父类代码。
解决缺点方法:多用组合少用继承,实现代码复用。
4、多态
定义:多态指同一个接口,使用不同的实例而执行不同操作,也就是父类中定义的属性和方法被子类继承之后,表现出不同的行为。
方法:利用继承和接口实现多态
意义:可扩展性和复用性,是很多设计模式,设计原则,编程技巧的代码实现基础。
二、面向对象和面向过程编程对比
1、面向对象编程(OOP:object-oriented programming)
定义:以类作为组织代码的基本单元,将封装,抽象,继承,多态四个特