抽象类与接口的区别

抽象类与接口的区别

问题描述:

什么时候应该用抽象类,什么时候又该用接口,这一点我一直很迷惑!

[b]参考JavaEye的一篇博客:[/b]
[url]http://fzfx88.iteye.com/blog/115393[/url]

[color=blue][b]Interface是纯粹的抽象类。与抽象类的区别,有2个点:

1、Interface是可以变相实现多继承,抽象类只能被类继承。由于Java中只允许单继承,所以Interface更灵活一点。

2、Interface不允许有实现方法,而抽象类允许有实现方法。需要在对外接口中包括某些基本实现的时候,就可以使用抽象类。抽象类,可用于适配器模式。

PS:Java中似乎比较喜欢用接口。比如Annotation的定义,使用的是 @interface的方式定义的。[/b][/color]

抽象类和接口的区别:
[url]http://dev.yesky.com/436/7581936.shtml[/url]

看了看Thinking in Java ,原来Interface也可以用于适配器模式。

不明了的情况下,还是使用Interface吧。

PS:看看Thinking in Java的接口一章吧,会有收获的。