115-Java-Interview-Questions-and-Answers

面向对象编程(OOP)

Java是支持并发,基于类的以及面向对象的一种计算机编程语言. 以下列举了面向对象编程的优势:

  • 模块化编程,使维护和修改更加容易
  • 代码重用
  • 提高代码的可靠性以及灵活性
  • 提高代码可读性

面向对象编程有其非常明显的特性,比如说封装,继承,多态和抽象. 下面我们来分析一下每种特性.
封装(Encapsulation)
封装,提供的对象隐藏内部特性和行为的一种能力,每个对象提供了一些方法,其他的对象可以访问并改变其内部数据。在Java中,提供了三种访问修饰符: 公有的,私有的以及保护的。每个修饰符都设定了不同的访问权限,这个权限设置不会因为包的不同而有差异。
下面是使用封装的一些优点:

  • 通过隐藏属性来保护对象的内部信息
  • 因为可以独立的修改或者扩展对象的行为,从而提高代码的可用性以及维护性
  • 隔离,通过阻止对象使用不希望的互动方式来交互,以此来提高模块化程度。 你可以通过链接访问我们的教程查看关于封装更多的细节和实例.

多态(Polymorphism)
多态就是针对不同的基础数据类型呈现相同接口的一种能力,多态类型就是其操作可以适用于不同类型值的一种类型。
继承(Inheritance)
继承提供了一个对象从基类获取字段和方法的一种能力.继承提供了代码的重用性,并且在不更改现有类的情况下,对现有类增加额外的功能。
抽象(Abstraction)
抽象是从具体的实例中分离想法的过程,根据他们各自的功能而非具体的实现来开发类. Java中支持创建和存在暴露接口的抽象类, 而没有包括方法的具体实现。抽象方法的宗旨就是将类的行为和具体实现分离开。
抽象和封装的异同
抽象和封装是个互补的概念。一方面,抽象专注在对象的行为上,而另外一方面,封装专注于对象的行为的具体实现。封装是通过隐藏对象的内部信息来实现的,因此也可以被看做是抽象的一种策略。