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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 怪盗急得 中级黑马   /  2012-10-8 20:32  /  1888 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈德基 于 2012-10-8 20:53 编辑

不能多继承可以理解,但是可以多实现有点抽象了,假设如果要实现的两个接口有同名的抽象方法,那到底是实现哪一个接口的抽象方法呢?跟抽象方法没有方法体又有什么关系?概念好混乱·····

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 欢迎来到15期~~~~

查看全部评分

6 个回复

倒序浏览
既然是抽象方法,没有方法体,那同名就没关系,因为没定义内容嘛
在实现的类中要复写此抽象方法,在子类中定义方法功能。。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 欢迎来到15期~~~~

查看全部评分

回复 使用道具 举报
写个例子解释你关于多实现的问题吧
回复 使用道具 举报
本帖最后由 王震阳 于 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, 下载次数: 89)

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

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 赞一个!

查看全部评分

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

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 赞一个!

查看全部评分

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