目录

Java 语言基础(三) 面向对象编程相关概念解析

本节目标

  • 了解对象
  • 了解类及其特征
  • 了解面向对象编程(Object Oriented Programming,简称 OOP)及其特征

面向对象编程说明

什么是对象(object)?

对象是一个自成一体的实体,它仅包含属性行为

什么是类(class)?

  • 类是对某一类事物的描述,是抽象的、概念上的定义
  • 对象是实际存在的该类事物的个体,因而也称实例(Instance)
  • 类和对象就如同概念和实物之间的关系一样,类就好比是一个模板,而对象就是该模板下的一个实例

Java 中类的划分

Java 中类可分为以下三种:

  • 普通类:使用 class 定义且不含有抽象方法的类
  • 抽象类:使用 abstract class 定义的类,它可以含有或不含有抽象方法
  • 接口:使用 interface 定义的类

面向对象

面向对象的主要思想是:将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为,构成类。

面向对象的编程思想力图使在计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能地一致,类(class)和对象(object)就是面向对象方法的核心概念。

OOP 三个基本特征

面向对象的三个基本特征是:封装、继承、多态。

封装

封装:也就是把客观事物封装成抽象的类,隐藏对象的属性和实现细节,仅对外公开访问方法,控制在程序中属性的读和写的访问级别。

封装的目的:增强安全性和简化编程,使用者不必了解具体的实现细节,而只要通过对外公开的访问方法,来使用类的成员。

继承(Inheritance)

面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”,继承的过程,就是从一般到特殊的过程。

我们在编写 Java 代码时,每一个类都是在继承。因为在 Java 中存在一个所有类的父类(基类、超类):java.lang.Object

类存在以下的继承规律:

  • 普通类可以继承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口
  • 抽象类可以继承(extends)普通类,可以继承(extends)抽象类,可以继承(implements)接口
  • 接口只能继承(extends)接口

各继承规律中的约束:

  • 一个普通类或一个抽象类,要么继承一个普通类,要么继承一个抽象类,即所谓的单继承
  • 一个普通类或一个抽象类或一个接口,可以继承任意多个接口
  • 一个普通类继承一个抽象类后,必须实现这个抽象类中定义的所有抽象(abstract)方法,否则就只能被定义为抽象类
  • 一个普通类继承一个接口后,必须实现这个接口中定义的所有方法,否则就只能被定义为抽象类
  • 抽象类继承抽象类,或者实现接口时,可以部分、全部或者完全不实现父类抽象类的抽象(abstract)方法或父类接口中定义的方法

多态(Polymorphism)

多态: 相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。

型构: 指方法的组成结构,具体包括方法的名称和参数,涵盖参数的数量、类型以及出现的顺序,但是不包括方法的返回值类型,访问权限修饰符,以及 abstract、static、final 等修饰符。

重写(overriding): 指在继承情况下,子类中定义了与其父类中方法具有相同型构的新方法。

重载(overloading): 指在同一个类中定义了一个以上具有相同名称,但是型构不同的方法。