领测软件测试网
)~9WW+D~;}uGy 前面已经提到过,abstract class在Java语言中体现了一种继承关系,要想使得 继承关系合理,父类和派生类之间必须存在"is-a"关系,即父类和派生类在概念本质上应该是相同的。对于interface来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的, 仅仅是实现了interface定义的契约而已。为了使论述便于理解,下面将通过一个简单的实例进行说明。
软件测试技术网站7rFK'E|&J)c[软件测试技术网站V(gJ;fYI1{5J+z)d 考虑这样一个例子,假设在我们的问题领域中有一个关于Door的抽象概念,该Door具有执行两个动作open和close,此时我们可以通过abstract class或者interface来定义一个表示该抽象概念的类型,定义方式分别如下所示:
ir)MJ9VYF}-WD{ 使用abstract class方式定义Door:
Mn{-shO!FW-x-v
B+B4|3kx_"Adabstract class Door{
(hB
CK;mu Sabstract void open();
软件测试技术网站PE8|
nFXabstract void close();
软件测试技术网站C1x`+BJ5y^O}
Z:\