A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董凯 中级黑马   /  2013-7-14 17:02  /  1255 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 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() ;
是前者效率更高,还是后者???

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

9 个回复

倒序浏览
吃个饭回来再答 哈。
回复 使用道具 举报
实现接口是因为要遵循这个接口里的规则,就如同毕老师讲的主板和网卡的总题,你的这个网卡要想在这个主板上使用,就必须符合主板上的插槽,你的这个问题就好像电脑能放音乐,MP3也能放音乐一样,没什么可比性。希望这样的回答能讲你满意!!!

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

回复 使用道具 举报
首先我也觉得这样的问题应该没有什么可比性,而且你只是简单的创建两个对象,前者是创建一个idemo对象指向了一个demo实例,而后者是创建了一个demo1的对象实例,接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
接口的概念主要是为了方便升级和扩展,有点性能牺牲还是可以接收的,尤其在J2EE里面,本来数据量就不是特别大!但是在通信服务器上面,这个可能要致命了!所以还是要看领域,其实C也是有接口的,只是不显式支持而已,鱼和熊掌不可兼得,使用接口就会导致你说的效率降低问题,但是接口有接口的好处,它便于扩展和维护,所以在硬件能够支撑的前提下,可以降低点效率,毕竟是为了程序员舒服,不是吗?:)

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
若要单纯对比效率的话,明显前者更复杂。thinking in java中有这样一段话
任何抽象性都应该是应真正的需求产生的。当必需时,你应该重构接口而不是到处添加额外级别的间接性,并由此带来的额外的复杂性...
恰当的原则应该是优先选择类而不是接口...
回复 使用道具 举报
后者效率更高
回复 使用道具 举报
面向接口是好的。
回复 使用道具 举报
面向接口是好的。
回复 使用道具 举报
效率没有多大关系的。使用接口的意义在于扩大了适用范围,规定了统一的标准。除非是要用的那个类中接口中没有,一般还是用接口的比较多,能提高代码的利用率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马