<p>上次面试“中软国际”,被问到面向对象程序设计的主要特征有哪些,我自认为很了解,可是居然没有答全。现整理如下:</p>

面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成的。OOP达到了软件工程的3个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其他对象发送信息。OOP主要有以下特性。

  1. 封装(Encapsulation)

    也叫做信息封装:确保组件不会以不可预期的方式改变其他组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其他组件联系的接口,并规定了其他组件进行调用的方法。

  2. 多态性(Polymorphism)

    许多不同的对象有相同的名字和相同的方法。如,某一方法可以完成同样的功能,但是实现的方法不同。或者,方法的名称相同,但是参数不同。

  3. 继承性(Inheritance)

    继承是指可以从其他对象中继承属性和方法,这样可以从一些简单的对象开始构造更加复杂的程序。