
引言
一个软件设计的好坏在很大程度上取决于它的设计模式, 而任何一个
设计模式都是和抽象分不开的。 从面向对象设计思想来看, 复用的重
点应该是抽象层的复用,而不是具体某个代码块的复用。 Java 抽象
类和接 IEI 代表的就是抽象类型, 是我们需要提出的抽象层的具体表
现。二者作为实现抽象层定义的两种重要机制具有很大的相似性, 但
在实际应用中又有本质的区别。
1 抽象类与接口的概念
l ,1 什么是抽象类
在面向对象的概念中, 所有的对象都是通过类来描绘的, 但并不是所
有的类都是用来描绘对象的。 如果一个类中没有包含足够的信息来描
绘一个具体的对象, 这样的类就是抽象类。 抽象类用来表示我对问题
领域进行分析后得出的抽象概念, 是对一系列看上去不同、 但本质上
相同的具体概念的抽象。 比如我们要开发一个管理乐器的软件, 会发
现问题领域存在着笛子、古筝等一些具体概念,它们是不同的,但都
属于乐器,这里的乐器就是一个抽象概念。下面将乐器定义为
抽象类:
abstract class Instrument{
pub1ic abstract void play() ;
public abstract void adjust()}
public String what(){
return ‘‘Instrument ”I