众所周知的一件事情就是,JAVA作为一个面向对象的编程语言,是有三大特性的。这三个特性分别是:封装,继承和多态。

在面试的过程中遇到这个问题的概率是比较大的,特别是一些刚出校门的大学生在求职时几乎全部都会遇到这个问题。考官其实也知道这个问题是非常基本的,主要也就是拿这一道题先争取一点时间——他看看简历。就我们公司的实际情况而言,很多人来面试,我们的同事去面试的时候都是被赶鸭子上架,并不乐意做这项工作。既然面试官问了,回答也不能敷衍,虽然这个问题很小白,但是想要说得出彩确实是很难的,因为一般最简单的往往也就是最难以说明白的。

封装,就我看过来的这么多的资料,往往提到的就是封装就是把信息包装起来不让外界看到,可以让信息更安全。我觉得封装就是把程序员写的方法和类变成一个小零件,在任何地方需要的时候拿过去就能用,而不用去关注内部是怎么实现的。封装所产生的的效果主要有两个:保护信息和方便重用。

继承,一个类使用另一个类已经写过的方法,或者重新写其写过的方法。继承引出了父类和子类的概念,父类的方法和属性只要不是private的,子类就可以直接拿来使用,不用重新定义。这样的效果就是可以节省代码量,也让代码可以重用。

多态,这个特性是从继承的这个特性延伸出来的。只有出现了继承,才会有多态,当然在JAVA里还有另外一个类似继承的操作——实现。实现是指接口(interface)和抽象类(abstract class)或类之间的关系。通过多态,能够用父类的引用指向子类的对象。