【菜鸟问题】关于接口问题

keller000 2003-08-22 03:50:30
《JAVA2 核心技术 卷1》 P208页,6.1.2 接口和抽象类
引:“如果你学习了第5章中的抽象类概念,你可能会疑问为什么Java的设计者会多此一举设计接口.........但是一个类可以实现任意多的借口”
书中无非想告诉说一个类只能扩展一个抽象类,但是却可以实现任意多的接口。所以接口完全可以实现抽象类的功能。
那我就不明白了,为什么JAVA的设计者要多此一举的设计抽象类这一概念。
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkhunter 2003-08-22
  • 打赏
  • 举报
回复
如果纯粹从编码实现的技术层面,接口是可以代替抽象类的。但是抽象类和接口代表两种不同的看问题的角度。
抽象类是从他继承的子类的本质所在,而接口是一个切面的体现。从不同角度去看或者使用同一个本质的东西,自然看到的现象会不一样,这个就是不同的接口。当然,抽象类本质其实也是一个接口,只不过是一个比较主要,比较大的接口:)
我在设计的时候,就象楼上的说的,在一些类之间的联系时用接口,一般是跟动作相关的,起一些连接作用。而涉及到本质的东西,使用抽象类。
接口有一个好处,就是可以实现多继承,在多继承的时候,如果有多个父类,哪个使用抽象类,哪个使用接口就看设计的出发点了,也就是你认为哪个是本质那么那个就用抽象类来实现,其他的就用接口了。
所以,我认为抽象类是接口的一个特例,在设计上体现了本质区别于其他接口的处理。
一家之言,请大家指正。
keller000 2003-08-22
  • 打赏
  • 举报
回复
说得好,还有高人吗?
yangxile 2003-08-22
  • 打赏
  • 举报
回复
接口并不能代替抽象类,子类可以继承抽象类的域和方法,但接口只能来保存一些公共常量和程序中公共方法,需要实现,这有利于实现类的多态性.
接口之所以叫做接口(interface),就因为它在程序中将各个类联系了起来,即共同的地方,这是我得理解,希望大家指出错误之处
keller000 2003-08-22
  • 打赏
  • 举报
回复
我知道接口和抽象类是两个概念,两者是有很大区别的。只是照书上的说法,既然接口能实现抽象类的功能,那抽象类存在又有什么意义呢?
cool_li 2003-08-22
  • 打赏
  • 举报
回复
抽象类是类,可以用来申明 抽象类类型的句柄,实现多态
接口不是类,只能 继承,另外接口可以 多次继承!
freejacky 2003-08-22
  • 打赏
  • 举报
回复
声明的返回类型可以是抽象类,但不能是接口

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧