 |
2008-02-28 15:37:38
来自: 乐山
(厦门)
自己的一些想法:不知道对不对
接口主要是用来描述这个系统有些什么功能,应该怎么调用这些功能,是更高的一层抽象。主要是用来表现给外界看。同时接口比较稳定,不能随便变来变去。因为你一变,对于外界来说你的表现就变了。接口对于系统来说,相当于一个规范的描述,感觉有点像虚拟机规范之于虚拟机,只要知道做了些什么,要实现些什么功能就好了,而不不要知道具体怎么实现。接口对于编程人员来说,相当于帮你隐藏了一些东西,这些隐藏(如何实现)的东西,你不需要去关注。
抽象类,在语法上的区别,你也说了。实际上抽象类也可以部分的实现接口的功能,即描述一些东西给外界看。抽象类更像一个系统的骨架,里面有一些基本的需要共享的代码。和一些已经实现好的方法。想想,如果全都用接口代替抽象类的话,那么我们底下子类的编写就需要编写大量的代码。而这些子类,本可以实现代码和属性的共享的。所以抽象类,更多的是一个对内的东西。
可以说接口是比抽象类更抽象的一个东西。接口和抽象类关注的地方不一样。当然从逻辑上来看,他们的区别不是那么的明显。但是从用法上来看,他们还是有比较大的区别。
写的有点乱...
| 2008-02-28 18:33:26 重构
(上海) 接口是JAVA中一个相当精妙的设计,感觉相当于一个资格证书。
例如,一个人的实体类有很多的方法,而英语资格证书,只关注你又没有它的方法,而不关注这个类的实体吃饭的方法,走路的方法,你只要有说英语的方法就可以了,具体怎么实现,资格证书是不会关注的。
只管资格,不管老爸,这就是接口比较强大的地方。
|
| 2008-02-28 19:51:36 乐山
(厦门) ls说的这个也是接口的一个好处,使用接口可以毫不费力的为类增加功能,使实现该接口的类一下子看起来像接口所描述的那样了
|
| 2008-02-28 19:58:25 ` never ,
(València) 一baidu 一票..``~~~
领会一下就差不多了吧,.```
|
|
| 2008-04-23 22:52:18 xtmboy
这两个是一个比较容易混淆的概念,也被混淆的使用,建议读读《java 与 模式》这本书,说的比较清楚了
|
| 2008-04-26 22:40:05 无尽的夏
(南京) 区别很简单:
接口--功能
抽象类--继承
|
| 2008-04-28 17:40:19 roseRouge
(北京) 接口是一份契约
抽象类提供一个框架
|
| 2008-06-18 10:20:09 麦田
(上海) 学习
|
> 我来回应
|