第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所示了解抽象分析的过程。
一个程序的开发,就是利用前面讲述的继承、接口、多态等概念,实现应用代码。下面就通过实例,来进一步地熟悉抽象在程序开发中的一些编程思路和应用。