第12章 抽象

在Java语言中,有两个很重要的概念:抽象和抽象类。抽象是一种方法,是Java语言编程的基本点。它将所有具体的事务,抽象为一些共同的事务。抽象类是一种类。本章将围绕如何建立编程思路这一个基本点,结合大量的程序实例来分析什么是抽象和抽象类。

本章重点:

❑什么是抽象。

❑抽象类的定义和使用。

❑抽象和接口的区别。

12.1 抽象的概念

本节将详细讲述什么是抽象行为,在讲述抽象行为之前,会先介绍什么是抽象,然后介绍抽象的一些基本应用。

12.1.1 什么是抽象

抽象就是将拥有共同方法和属性的对象提取出来,提取后,重新设计一个更加通用、更加大众化的类,这个类称为抽象类。抽象类是从一个客户要求信息中提取出一个类。下面先看一个有关抽象的例子,再来理解抽象的概念。

为汽车销售公司开发一个信息系统软件。这个汽车销售公司拥有不同厂家的汽车,例如大众、通用、福特等。

分析:面对这样一个客户信息,首先要给这个汽车销售公司的所有汽车建立一个类,此类能充分地表现出各个不同品牌汽车的特点。这项工作就是一个抽象的过程,例如,汽车有轮子、离合器、车灯、方向盘等,这些都是所有不同品牌汽车的共同特征。这些特征能够充分证明这是一部汽车,至于是什么汽车则不属于抽象的范围。

【实例12.1】下面来看一个实例,通过实战了解具体的抽象概念。


01 public class studenttest1

02 {

03 public static void main(String[]args)

04 {

05 student st=new student("张杰","200111","20","男");

06 }

07 }

08 class student

09 {

10 String name;

11 String code;

12 String age;

13 String sexy;

14 public student(String name, String code, String age, String sexy)

15 {

16 this.name=name;

17 this.code=code;

18 this.age=age;

19 this.sexy=sexy;

20 System.out.println("这个学生的学生 姓名:"+name+""+" 学号:"+code+""+" 年龄:

21"+age+""+" 性别:"+sexy);

22 }

23 }


【代码说明】上面这个程序段第8~22行抽象出一个学生类,它并不管是哪个学校的学生、哪个城市的学生、哪个国家的学生。而第10~13行的这些属性,都代表了一个学生应该拥有的特性。至于其他的属性,例如学校、班级、班主任等,可以通过继承创建另一个子类。

【运行效果】


这个学生的学生 姓名:张杰 学号:200111 年龄:20 性别:男


通过上面的讲述,可以知道抽象就是提取所有对象的共性,取出共性的过程。下面就通过图12.1所示了解抽象分析的过程。

一个程序的开发,就是利用前面讲述的继承、接口、多态等概念,实现应用代码。下面就通过实例,来进一步地熟悉抽象在程序开发中的一些编程思路和应用。