黑马程序员技术交流社区

标题: 关于接口的一个问题 [打印本页]

作者: 604840337    时间: 2016-3-23 23:59
标题: 关于接口的一个问题
interface HHH {
        public static final int x =10;
}interface JJJ {
        public static final int x =20;
}
class  Dog implements HHH,JJJ{
   public void show(){
   System.out.ptintln(x);
}
}
然后在主函数里创建对象 调用 show()方法 会出现什么情况?

作者: 黄盖打周瑜    时间: 2016-3-24 01:21
对x的引用不明确, HHH中的变量 x和JJJ中的变量 x都匹配,报错
作者: 604840337    时间: 2016-3-24 08:17
黄盖打周瑜 发表于 2016-3-24 01:21
对x的引用不明确, HHH中的变量 x和JJJ中的变量 x都匹配,报错

为什么会这样?
作者: monZhang    时间: 2016-3-24 12:00
604840337 发表于 2016-3-24 08:17
为什么会这样?

不这样,你说方法调用的时候去找哪个X呢?
作者: 604840337    时间: 2016-3-24 13:13
monZhang 发表于 2016-3-24 12:00
不这样,你说方法调用的时候去找哪个X呢?

后续会不会在实际开发中遇到这样的问题?另 如果先让HHH继承JJJ 然后类实现HHH  打印x  会出现什么结果
作者: javen_oi    时间: 2016-3-24 14:08
你去写这个代码吧。。直接编译不过。。。要system。out。print(HHH.x);这样才可以
作者: monZhang    时间: 2016-3-25 09:47
604840337 发表于 2016-3-24 13:13
后续会不会在实际开发中遇到这样的问题?另 如果先让HHH继承JJJ 然后类实现HHH  打印x  会出现什么结果 ...

开发会不会遇到不知道,但是你这样写肯定编译不过,如果让HHH继承JJJ  在实现HHH   打印X 时 会去子类中找(HHH中)是否有X 如果没有在到父类(JJJ)找。另外你的输出语句 println 写错了。




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