抽象类和接口

java中抽象类和接口的区别?

简单来说,
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

java 中什么时候用接口好什么时候用抽象类好

接口就跟U盘的USB接口一样,可以插拔。。
当你要完成一个功能的时候,两个事物联系不大,可以用接口。
抽象类着重继承关系。如果两个东西可以看成继承关系,用抽象类。
你要弄一个有警报器的门。
你可以定义一个抽象door类,门有close和open的方法。也定义到这个抽象类里。
但这个警报器,跟门一般关系不大。。所以,你可以用接口.

然后这个带警报器的门就可以是继承door这个类并实现警报器接口。

这种选择还是得具体问题具体分析。
用得多了,自然就熟了。。就会产生代码感,如果用得不太好,就会觉得别扭。
没必要去过多的追究这些小细节。。
posted @ 2013-12-24 10:34  三星蓝  阅读(212)  评论(0编辑  收藏  举报