J2SE里面的小问题!

三更之饮茶 2008-04-21 06:09:42
定义两个接口A,B 他们有同样一方法public void a()
再一个类C implements A,B
类C重写方法public void a(){System.out.println("10")};
创建类C的对象c 调用a()打印出10;
请问类C中重写的是哪个类的方法???

谢谢
...全文
172 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoxiongok 2008-04-21
  • 打赏
  • 举报
回复
我想楼主想问的是,类C实现了哪个接口的方法!
我的理解是:
A接口要求类C实现a() 方法
B接口也要求类C实现a() 方法
那类C里只要有一个a() 方法就可以了

就好像,老师让你把作业做完,你父母也要你把作业做完!
你只要做完就就行了!而且只用做一份,不用管你到底是听谁的!
左师佑图 2008-04-21
  • 打赏
  • 举报
回复

(1) 如果两个直接超接口中包含有同名的有名常量,那么类体中应该使用格式:

<接口名>.<常量名> 来访问某个指定接口中的有名常量。

(2) 如果两个直接超接口中包含有相同签名但返回类型不同的方法,那么将引发编译时错误。

(3) 如果两个直接超接口中包含有相同签名且返回类型相同的方法,那么类中只继承保留一个。

如果类提供方法的实现,那么它就作为两个接口中的同名方法的共同实现。
三更之饮茶 2008-04-21
  • 打赏
  • 举报
回复
原来是这样``
我还是有点把接口和继承没有分开
aking21alinjuju 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 joejoe1991 的回复:]
我想楼主想问的是,类C实现了哪个接口的方法!
我的理解是:
A接口要求类C实现a() 方法
B接口也要求类C实现a() 方法
那类C里只要有一个a() 方法就可以了

就好像,老师让你把作业做完,你父母也要你把作业做完!
你只要做完就就行了!而且只用做一份,不用管你到底是听谁的!
[/Quote]
joejoe1991 2008-04-21
  • 打赏
  • 举报
回复
我想楼主想问的是,类C实现了哪个接口的方法!
我的理解是:
A接口要求类C实现a() 方法
B接口也要求类C实现a() 方法
那类C里只要有一个a() 方法就可以了

就好像,老师让你把作业做完,你父母也要你把作业做完!
你只要做完就就行了!而且只用做一份,不用管你到底是听谁的!
ChDw 2008-04-21
  • 打赏
  • 举报
回复
类C没有重写方法,是实现了方法public void a()

所以不存在重写的说法,无论你将c赋给接口A还是B,调用方法a时方法都是只有一份!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧