• 软件测试技术
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘

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

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

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

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

领测软件测试网

Jla5~3c 其他具体的Door类型可以extends使用abstract class方式定义的Door或者implements使用interface方式定义的Door。看起来好像使用abstract class和interface没有大的区别。
#L PB"TXb.?c软件测试技术网站 h'jT{s,G @
  如果现在要求Door还要具有报警的功能。我们该如何设计针对该例子的类结构呢(在本例中, 主要是为了展示 abstract class 和interface 反映在设计理念上的区别,其他方面无关的问题都做了简化或者忽略)?下面将罗列出可能的解 决方案,并从设计理念层面对这些不同的方案进行分析。软件测试技术网站+z/fr"rlBy"g@1S7k
软件测试技术网站iQ$b\ Z8Nuj/l
  解决方案一:软件测试技术网站d0t],un;o

2\.X^.njFk k  简单的在Door的定义中增加一个alarm方法,如下:软件测试技术网站.R;s7y'jE\-pr
软件测试技术网站A+? q,| F1a}8RY7M&I
abstract class Door{
)PH f#pFU} x2Vabstract void open();软件测试技术网站!p \u\'Dv
abstract void close();软件测试技术网站/Cz]{*y%[
abstract void alarm();软件测试技术网站3d ^ba+MNJ%rj
}
+\o,u7w5d  或者
}_!N}H0zhR软件测试技术网站CUBDLM
interface Door{
W&Y-_[` a]void open();软件测试技术网站1Pz6Zw#CCT
void close();软件测试技术网站[X.U;`a