java——面向对象三大特征

138 阅读3分钟

三大特征

java面向对象的三大特征:封装、继承、多态。

什么是面向对象

面向对象是和面向过程开发不同的开发思想。

面向过程

面向过程(Procedure Oriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。

简单来说,面向过程的开发范式中,程序员需要把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。这种方式的代码执行起来效率很高。

但是,面向过程同时存在着代码重用性低,扩展能力差,后期维护难度比较大等问题。

面向对象

而面向对象的开发范式中,程序员将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。

就是说,在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。比如:想要造一辆车,上来要先把车的各种属性定义出来,然后抽象成一个Car类。

面向对象的编程方法之所以更加受欢迎,是因为他更加符合人类的思维方式。这种方式编写出来的代码扩展性、可维护性都很高。

封装

Java中的封装是一种将数据(变量)和作用于数据(方法)的代码打包为一个单元的机制。在封装中,类的变量将对其他类隐藏,并且只能通过当前类的方法访问。
封装可以对类的内部进行改变而不影响整体结构,同时也保护来数据。对于外界而言,它的内部是隐藏的,暴露给外界的只是可以访问它的方法。

优点:

  • 类的内部可以自由修改
  • 对成员变量的控制更精确
  • 隐藏信息,保护数据
  • 减少耦合

继承

继承是指这样的一种能力:可以使用现有类的所有功能,又可以在不改写原有类的基础上实现功能的扩展。

在java中我们需要使用extends关键字,通过继承创建的类被称为子类、派生类,被继承的类被称为基类、父类、超类。

优点:

  1. 提高了代码的重复性
  2. 继承为多态的实现提供了可能性。

在java中只运行但继承,也就是一个类只能由一个父类。但一个类可以同时实现多个接口。

多态

多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。
也就是就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

这种多态是运行时的多态,这种多态想要实现就要满足下面几点:

  1. 要继承一个类
  2. 重写方法
  3. 父类引用指向子类的对象(父类类型 变量名=new 子类类型();)

还有中说法是说多态分为两种:运行时多态,编译时多态。

  • 运行时多态指通过继承重写实现,只有在运行的时候才能知道具体的执行方法。
  • 编译时多态指通过方法的重载实现,方法的重载在编译的时候就能知道方法具体是执行的那种。

OOP编程思想:封装、继承、多态 - 知乎 (zhihu.com)

面向对象的三大基本特征 (hollischuang.github.io)