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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张雄 中级黑马   /  2016-3-16 17:19  /  666 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一直搞不明白,既然接口设定完了在实现类中使用的时候还要重写方法,那我在实现类直接写方法不就好了吗?为什么还要实现接口?来自: iPhone客户端

评分

参与人数 1黑马币 +20 收起 理由
百里青山 + 20 淡定

查看全部评分

4 个回复

倒序浏览
本帖最后由 ameanboy 于 2016-3-17 23:00 编辑

这样你可以用一个接口的引用来指向所有实现了该接口的类并很方便的调用其中的功能。你可以把接口想象成一个标准,不规定怎么实现,只定死要实现什么效果。举个例子
  1. interface 可榨汁的{
  2.     public void 榨汁();
  3. }

  4. class 苹果 implements 可榨汁的{
  5.     public void 榨汁(){
  6.         System.out.println("苹果汁");
  7.     }
  8. }

  9. class 橘子 implements 可榨汁的{
  10.     public void 榨汁(){
  11.         System.out.println("橘子汁");
  12.     }
  13. }

  14. class 菠萝 implements 可榨汁的{
  15.     public void 榨汁(){
  16.         System.out.println("菠萝汁");
  17.     }
  18. }

  19. //于是,我就可以这样来调用:
  20. 可榨汁的[] s = new 可榨汁的[3];
  21. s[0] = new 苹果();
  22. s[1] = new 橘子();
  23. s[2] = new 菠萝();

  24. for(可榨汁的 f : s)
  25.     f.榨汁();
复制代码


回复 使用道具 举报
ameanboy 发表于 2016-3-16 18:05
这样你可以用一个接口的引用来指向所有实现了该接口的类并很方便的调用其中的功能。你可以把接口想象成一个 ...

表示好难看懂您写的东西。{:2_30:}
回复 使用道具 举报
因为多态,我认为的。,
回复 使用道具 举报
你可以把接口中理解为一种功能,如果你把这种功能写在一个类中那么通过这个类new出来的对象都具有这种功能,而实际上开发中有些类不应该具有这个功能
比如说Person这个类,会说英语是个功能把它定义为接口然后这个人实现这个接口,这个人就是会说英语的人,而没有实现这个接口的Person就不具有这个功能
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马