• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

您的位置:您的位置:软件测试技术网站 >> 软件测试技术 >> 开发语言 >> Java >> 查看资讯

字号: | 推荐给好友 上一篇 | 下一篇

详细解析Java中抽象类和接口的区别

发布: 2008-5-09 10:30 | 作者: 不详 | 来源: yesky | 查看: 57次 | 进入领测软件测试网论坛讨论

领测软件测试网

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