JAVA接口 到底好用在哪?

看了不少例子,也把例子都敲了一遍,但是还是没能很好的认识到接口的强大
比如这个例子:
http://www.blogjava.net/bcims/archive/2007/09/15/145322.html
比喻很形象,但是我把人的接口换成class
似乎实现的效果也相同啊
疑惑了....

[quote]我就知道接口的可扩展性强
但是至今还是没能切身体会啊
[/quote]

那估计你得慢慢体会。我只能说这是个过程。

class只能继承一个,接口可以接很多个。而且你继承class的话,你会暴露父类的内部方法,要不你就得重写父类的方法,接口就不然,每个类都有自己的不同的实现方法,不知道说的合适不 :oops:

1.接口可以用于回调;
2.接口便于单元测试;
3.一个类可以实现多个接口,但是只能同时集成一个类;
。。。。。

看下JDBC的实现吧。
我们操作的PreparedStatement,Connection,ResultSet等等,其实都是java.sql包下面的接口。

其真正的实现是在不同的数据库厂商提供的jdbc驱动中,如MYSQL,ORACLE,SQLSERVER等。

这样,对于我们开发者来讲,只需要写一套操作DB的程序(当然SQL语句各个数据库之前还是由区别的)。

接口,比起普通的父类来讲,在继承体系上有优越性。
接口一定程度上还能解耦合。

[quote]

虽然对接口的种种好处也听过不少
但是实际运用上就不知道怎么做了
是不是非得大项目才能一下体现出它的优越性啊?
[/quote]

也不一定非得达到电信啊或者行业的大大大的项目。
只是说如果你的程序要求有多种实现,。或者在扩展性上有要求的话,就体现出接口的好处了。
业内不是推崇一种思想么?面向接口编程。。。而不面向实现。

设计模式中你可以看到,很多都是基于接口的!