自学java 新手求助接口问题

zhw0705 2016-12-13 03:15:00
刚学到接口,接口的方法都是抽象的,找它实现类重写这无用的方法不如直接在它实现类中定义该方法,为什么要重写这么麻烦??
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
掌心的溫度丶 2016-12-14
  • 打赏
  • 举报
回复
好比。 你发明了一个东西。 你却把发明的所有细节都告诉了别人。 然后被人copy走了。你觉得合适不?
qq_30110165 2016-12-14
  • 打赏
  • 举报
回复
接口就像是告诉别人,我需要有这些功能。。。至于怎么实现那是你的事情。。好比java提供了对不同数据库的访问,我java要访问mysql或者微软的数据库,mysql或者微软,都要各自去实现我定义的接口,不然我Java程序就不能访问你的数据库。。
u012918361 2016-12-13
  • 打赏
  • 举报
回复
我就说其中一种好处吧(接口和抽象类差不多)。 例如: List<String> list = new ArrayList<String>(); list.add(""); list.…… 如果有一天你想让list的实际类型改为LinkedList,只要改new ArrayList为new LinkedList这一处就行。 酱紫:List<String> list = new LinkedList<String>(); 如果你原来写的是实体类。 ArrayList<String> list = new ArrayList<String>(); 你想把它改为 LinkedList<String> list = new LinkedList<String>(); 那么你得检查所有用到了list的地方,是否有ArrayList支持而LinkedList不支持的方法,不然会报错。 而原来用向上转型为List的写法则不用去检查,因为向上转型时,只能用到List有的方法(实际类型ArrayList的方法在你最开始写时就用不了,所以后面改动也不会遇上)
lemonMay1 2016-12-13
  • 打赏
  • 举报
回复
感觉提高了java类的灵活性吧。 就类比与我们生活中常见的USB接口一样,一台电脑可能需要很多外部硬件来做一些额外功能的支持,如果要为每个硬件提供一个接口,就会限制了电脑的功能支持。但是现在,生产电脑的厂家就提供统一的USB接口,其他硬件的厂家如果要生产某个插件,就必须也提供一样的接口,这里就可以理解为实现类的实现吧。不知道类比的是否清楚。
爱睡觉的阿狸 2016-12-13
  • 打赏
  • 举报
回复
接口是一组规范,大家都照着这规范进行编程的话,就算底层实现类优点不同,上层应用也可以很方便的切换而不需要改动太多的代码。举个例子,web容器有很多,什么tomcat啊,Jboss啊,但是他们都是照着JavaEE规范(即是接口)进行实现,那么你切换容器的时候就不需要改动太多代码了。如果没有JavaEE规范接口,那么他定义个httpservletrequest接口,我的又叫req,你原先用他的web容器,切换到我的,你又要把代码全改了,那太麻烦了。
奄灬苟且偷生 2016-12-13
  • 打赏
  • 举报
回复
并且当你制作项目的时候 一个类中拥有过多的方法,每个方法也拥有很多行代码,这个时候看一下接口就能知道这个类里有什么方法了,要不能找死你
Error_is_a_gril 2016-12-13
  • 打赏
  • 举报
回复
接口在实际开发过程中最大好处是,你可以按照设计,先把接口写好,然后分配大伙干活的时候,告诉a们去用写好的接口去实现他们的具体功能,而告诉b们,去写那些已经写好但是没有具体的代码的接口,这样可以提高工作效率。并且底层和应用也通过接口做了一个很明显的分层。
自由自在_Yu 2016-12-13
  • 打赏
  • 举报
回复
假如你写的接口被别人调用,你是给人家接口还是实现类,把实现类都暴露给别人,还有安全感吗?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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