黑马程序员技术交流社区

标题: 接口实现问题 [打印本页]

作者: 怪盗急得    时间: 2012-10-8 20:32
标题: 接口实现问题
本帖最后由 陈德基 于 2012-10-8 20:53 编辑

不能多继承可以理解,但是可以多实现有点抽象了,假设如果要实现的两个接口有同名的抽象方法,那到底是实现哪一个接口的抽象方法呢?跟抽象方法没有方法体又有什么关系?概念好混乱·····
作者: 李兆宁    时间: 2012-10-8 20:37
既然是抽象方法,没有方法体,那同名就没关系,因为没定义内容嘛
在实现的类中要复写此抽象方法,在子类中定义方法功能。。
作者: 王震阳老师    时间: 2012-10-8 20:56
写个例子解释你关于多实现的问题吧
作者: 王震阳老师    时间: 2012-10-8 21:08
本帖最后由 王震阳 于 2012-10-8 21:23 编辑
  1. class TestImplementsInterface
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 classC c=new classC();
  6.                 c.test();//测试方法是否实现,可见是可以的。
  7.         }
  8. }

  9. interface interA
  10. {
  11.         void test();//系统会默认成public static void test();
  12. }
  13. interface interB
  14. {
  15.         void test();//系统会默认成public static void test();
  16. }
  17. class classC implements interA,interB
  18. {
  19.         public void test()//当两个接口中有相同的方法时,我们只要实现一个即可。
  20.         {
  21.                 System.out.println("classC 实现了A,B两个接口。这两个接口里有两个相同的抽象方法test(),可以看到尽管接口中的抽象方法相同,那么并不影响我们去实现。");
  22.         }
  23. }


复制代码

多接口相同方法的实现.jpg (38.85 KB, 下载次数: 88)

多接口相同方法的实现.jpg

作者: qhasilver    时间: 2012-10-8 21:11
抽象方法是属于哪个接口并不重要,接口并不提供具体的方法给你用,具体方法是你自己重写的。抽象方法的意思就是:我描述了一个杯子应该长什么形状,你得照着我的样子去做,具体你怎么做,做出来干嘛使,我不管。
作者: 杨华东    时间: 2012-10-8 21:32
跟你讲啊,有两种方案可以解决你的问题。
第一种方案:
把你所说的含有同名抽象方法的两个接口再向上抽取,此时你会发现新的接口出现了而且只有一个抽象方法了。
如果有其他类实现该接口只要实现一个方法就行了。
第二方案:
当某个类实现了这两个接口,该类只实现一个方法就OK啦 因为是同名的。
作者: 徐传任    时间: 2012-10-8 22:43
看看..............




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