黑马程序员技术交流社区

标题: java使用接口的问题 [打印本页]

作者: 董凯    时间: 2013-7-14 17:02
标题: java使用接口的问题
本帖最后由 杨兴庭 于 2013-7-15 17:52 编辑
  1. public interface idemo(){
  2. public void hello();
  3. }
  4. public class demo implements idemo(){
  5. public void hello() {
  6. System.out.println("hello");
  7. }
  8. }

  9. public class demo1 () {
  10. public void hello() {
  11. System.out.println("hello");
  12. }
  13. }

复制代码
使用 idemo ins = new demo();
demo1 ins = new demo1() ;
是前者效率更高,还是后者???

作者: 丁永志    时间: 2013-7-14 17:09
吃个饭回来再答 哈。
作者: 哪颗最亮的星星    时间: 2013-7-14 17:26
实现接口是因为要遵循这个接口里的规则,就如同毕老师讲的主板和网卡的总题,你的这个网卡要想在这个主板上使用,就必须符合主板上的插槽,你的这个问题就好像电脑能放音乐,MP3也能放音乐一样,没什么可比性。希望这样的回答能讲你满意!!!
作者: wedge    时间: 2013-7-14 17:34
首先我也觉得这样的问题应该没有什么可比性,而且你只是简单的创建两个对象,前者是创建一个idemo对象指向了一个demo实例,而后者是创建了一个demo1的对象实例,接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。
作者: 王中伟    时间: 2013-7-14 17:46
接口的概念主要是为了方便升级和扩展,有点性能牺牲还是可以接收的,尤其在J2EE里面,本来数据量就不是特别大!但是在通信服务器上面,这个可能要致命了!所以还是要看领域,其实C也是有接口的,只是不显式支持而已,鱼和熊掌不可兼得,使用接口就会导致你说的效率降低问题,但是接口有接口的好处,它便于扩展和维护,所以在硬件能够支撑的前提下,可以降低点效率,毕竟是为了程序员舒服,不是吗?:)

作者: 薛淑凯    时间: 2013-7-14 17:48
若要单纯对比效率的话,明显前者更复杂。thinking in java中有这样一段话
任何抽象性都应该是应真正的需求产生的。当必需时,你应该重构接口而不是到处添加额外级别的间接性,并由此带来的额外的复杂性...
恰当的原则应该是优先选择类而不是接口...
作者: 王海旺    时间: 2013-7-14 18:06
后者效率更高
作者: 王靖远    时间: 2013-7-14 19:25
面向接口是好的。
作者: 王靖远    时间: 2013-7-14 19:25
面向接口是好的。
作者: wll_sx1990    时间: 2013-7-14 23:00
效率没有多大关系的。使用接口的意义在于扩大了适用范围,规定了统一的标准。除非是要用的那个类中接口中没有,一般还是用接口的比较多,能提高代码的利用率。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2