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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 赵熠东(赵东东) 于 2013-5-6 20:20 编辑

RT 为什么使用接口的时候,要在实现接口的类中实现接口中所有的抽象方法?想偷懒的话还要使用适配器,多麻烦呀!java语言为什么要这么规定呀!假如可以不实现所有的抽象方法的话,也就不用引入适配器这个概念了,这样不更好吗?

5 个回复

倒序浏览
Java中的接口是一系列方法的声明,是一些方法特征的集合。如果你要继承这个接口,你就必须遵守这些规范,必须有这些特征。
比如,这是一个计算机接口,这里面就定义了“输人数据和程序的输入设备、记忆程序和数据的存储器、完成数据加工处理的运算器、控制程序执行的控制器、输出处理结果的输出设备”五大规则。
你如果想制造一台计算机的话,就必须遵守这五个规则,否则,就不是计算机啦。
回复 使用道具 举报
在没有涉及接口之前,不是只有抽象类么?接口可以说是抽象类的标准化.如果不想实现接口的所有方法.还不如定义一个抽象类.接口我感觉是一种标准,这也是面向对象的核心,把所有的事物功能化,标准化.单独实现以尽最大程序减少各功能块间的偶合性.
打一个小比喻:你开了一家小公司,怎么弄都行.但是企业达到一定规模之后,所有的部门都必须开设了.人事/人资/财务...而且各部门间的事务不能纠缠,不然工作起来极其麻烦.效率也低.你是公司老总了,你的公司都国际化了.你会想着,我的公司我不实现人事部这个功能行不行?行,也有方法(这里应该等同适配器),但是好么?明显不符合企业标准.接口是什么.不就是扩展功能用的.
回复 使用道具 举报
不过是为了方便后期的扩展罢了
回复 使用道具 举报
呵呵,因为java接口中的方法都是抽象的呀,抽象的方法就是说,只有声明没有定义,比如:
  1. public abstruct void demo();
复制代码
它这样就相当于是在局部声明了一个变量却没有赋值,比如:
  1. int i;
复制代码
而要想使用自然是必须定义的,而你说的适配器它其实就是一种对策问题。
都说上有政策下有对策就是这个意思了,你看哈:
  1. interface A
  2. {
  3. //我这个接口有很多个方法,你让我没一个实现它的类都实现全部方法?开玩笑,多累呀。
  4. void demo();
  5. int function();
  6. ....
  7. }
复制代码
然后我们的对策就是:
  1. public B implememts A
  2. {
  3. public void demo(){}
  4. public int function(){}
  5. ....
  6. }
复制代码
下次如果我想要用的这个接口中的那个方法,我再实现那个就成了,别的我用不到,实现了也是白搭!
回复 使用道具 举报
接口,其实无处不在

把你、我做为两个对象
我们两个要进行沟通,就要有一个标准的接口,才能沟通,例如:汉语、汉字
现在,我们在交流,我们也只是用到了,几十字而已,
你说,能不能为了咱们两个的这次交流,让接口只有这几个字?
如果为了这次交流,就学这几个字,那你在交流前怎么知道,我们交流的内容就这几个字?
如果限制了,只学会这几个字,那么其他的技术问题还能继续交流吗?

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马