面向对象语言三大特征

时间:2020-12-22 19:53:19
1:封装
      封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了。其实JAVA 中的封装这个概念也就和这个是差不多的意思。封装是JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。
封装的功能
(1) 隐藏对象的实现细节
(2) 迫使用户去使用一个界面访问数据
(3) 使代码更好维护

       封装迫使用户通过方法访问数据能保护对象的数据不被误修改,还能使对象的重用变得更简单。数据隐藏通常指的就是封装。它将对象的外部界面与对象的实现区分开来,隐藏实现细节。迫使用户去使用外部界面,即使实现细节改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作。封装使代码维护更简单。

2:继承
       继承特性也可以理解为是一种“is a ”的关系,也就是所谓的“子对象”,可以这么理解:
       在面向对象世界里面,常常要创建某对象(如:一个职员对象),然后需要一个该基本对象的更专业化的版本,比如,可能需要一个经理的对象。显然经理实际上是一个职员,经理和职员具有"is a" 的关系,也可以这么说,“公司里所用的工作人员都是职员,只是因为岗位不同分为总经理、部门经理,普通职员等”。经理只是一个带有附加特征的职员(现在的经理一进入公司的时候也是一个普通职员,只是因为附加了经验和能力,所以变为了经理)。因此,需要有一种办法从现有对象来创建一个新对象。这个方式就是继承。
       “继承”是面向对象软件技术当中的一个概念。如果一个对象A继承自另一个对象B,就把这个A称为"B的子对象",而把B称为"A的父对象"。继承可以使得子对象具有父对象公有的和保护的各种属性和方法,而不需要再次编写相同的代码。在令子对象继承父对象的同时,可以重新定义某些属性,并重写某些方法,即覆盖父对象的原有属性和方法,使其获得与父对象不同的功能。

3:多态

     

     其中利用了父类引用子类对象,调用子类方法

       同一行为的多种不同表达,或者同一行为的多种不同实现就叫做多态。还是用刚才经理和职员这个例子来举例:人事部门需要对公司所有职员统一制作胸卡(一般也就是门禁卡,进出公司证明身份使用),制作的师傅说,只要告诉我一个人员的信息,就可以制作出一份胸卡,简化一下就是:一位职员的信息对应一份胸卡。这个时候,对胸卡制作的师傅而言,所有的人都是职员,无所谓是经理还是普通职员。也就是说,对于传递职员信息这样一个行为,存在多种不同的实现,既可以传递经理的信息,也可以传递普通职员的信息。这就是多态的表现。
       再举一个例子:比如我们说“笔”这个对象,它就有很多不同的表达或实现,比如有钢笔、铅笔、圆珠笔等等。那么我说“请给我一支笔”,你给我钢笔、铅笔或者圆珠笔都可以,这里的“笔”这个对象就具备多态性