黑马程序员技术交流社区
标题:
实现多接口的问题
[打印本页]
作者:
王晓东
时间:
2012-6-5 15:11
标题:
实现多接口的问题
interface Interface1 {
public String name = "interface1";
}
interface Interface2 {
public String name = "interface2";
}
class Impl implements Interface1, Interface2 {
}
@Test
public void test03(){
Impl impl = new Impl();
System.out.println(impl.name); //<font color="red">编译出错,为什么?</font>
}
复制代码
还有,如果上面的代码可以通过编译的话,那么访问的是Interface1中的name字段呢还是访问的是Interface2中的name字段呢?
求解
作者:
张少威
时间:
2012-6-5 15:12
首先告诉楼主两点:
1. 接口中的字段,即使你不加任何修饰符,它也是public static final的
2. 接口中的方法,即使你不加任何修饰符,它也是public abstract的
楼主的写法,我看着真是别扭呀。你想访问哪个接口中的字段就直接用接口调用呀。
比如Interface1.name就是访问Interface1中的name字段,同样Interface2.name就是
访问Interface2中的name字段。
希望对楼主有用。
作者:
丰亚彬
时间:
2012-6-5 15:14
呃,你问的问题本身就矛盾。。。要是能编译通过访问的是哪一个name,它就不能编译通过,因为他们两个就不可能同时存在。。。。
作者:
包晗
时间:
2012-6-5 15:25
楼主的意思是建立对象后看输出哪一个 是吗?
你的代码通不过啊
个人理解接口都是抽象的
需要类来实现.
作者:
何拴绪
时间:
2012-6-5 17:53
这个问题类似一个类实现了两个接口中的同名但返回值不同的方法,这种情况就很少,在编程时要尽量避免,所以多个接口中的字段和方法不要重名。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2