提一个java问题:继承跟接口

zhang0077 2008-03-26 01:58:39
我定义了一个接口A跟一个类B,在接口A跟类B中都有变量i
但负值不一样,如果我再用另一个类C去继承这个类B及implements 接口A,
那类C中如果输出变量i,结果是哪一个值?高手给指点一下,谢谢!
...全文
146 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
badonly 2008-03-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 nihuajie05 的回复:]
在接口中的变量,会被默认更改成为final 和static
调用的时候,我们能用接口---父类的类名来调用,同样可以用子类的对象的引用来调用.而第二点跟抽象类中变量的调用方法相同.
产生二义性,从而导致了编译出错.
这是这样的原因,我们不推荐在接口中定义变量,即便他是static and final..毕竟没有什么意义
[/Quote]
是static and final 还会是变量吗?

在接口中定不定义常量,看实际场合了!
nihuajie05 2008-03-27
  • 打赏
  • 举报
回复
在接口中的变量,会被默认更改成为final 和static
调用的时候,我们能用接口---父类的类名来调用,同样可以用子类的对象的引用来调用.而第二点跟抽象类中变量的调用方法相同.
产生二义性,从而导致了编译出错.
这是这样的原因,我们不推荐在接口中定义变量,即便他是static and final..毕竟没有什么意义
ooo19841080xinxin 2008-03-26
  • 打赏
  • 举报
回复
默认final
kingaking 2008-03-26
  • 打赏
  • 举报
回复
直接调用i,编译器报错,说不能确定到底调用的是哪个i.
linmen1983 2008-03-26
  • 打赏
  • 举报
回复
interface B
{
int i = 9;
}
class A
{
int i = 10;
}

public class c extends A implements B
{
c()
{
System.out.println("接口中的i是:" + B.i);
System.out.println("父类中的的i是:" + super.i);
System.out.println(i);//报错
}

public static void main(String[] args)
{
c aa=new c();
}
}
wei_deng999 2008-03-26
  • 打赏
  • 举报
回复
接口中不能定义变量
梅小西Echo 2008-03-26
  • 打赏
  • 举报
回复
interface B 
{
int i = 9;
}
class A
{
int i = 10
}

public class C extends A implements B
{
public static void main(String[] a)
{
System.out.println("接口中的i是:" + B.i);
System.out.println("父类中的的i是:" + super.i);
System.out.println(i);//可能会报错
}
}
liyong_301 2008-03-26
  • 打赏
  • 举报
回复
ambiguous!!
hjxaut 2008-03-26
  • 打赏
  • 举报
回复
ambiguous!!
e5945 2008-03-26
  • 打赏
  • 举报
回复
接口里面不能有变量,都是常量。
angay7 2008-03-26
  • 打赏
  • 举报
回复
public class C extends B implements A {
static int i;//如果不定义为私有,就会报错
public static void main(String[] args){
System.out.println(i);

}

}

这个时候输出的是默认的值0,i值跟B A中的都不一样。我是在环境下按LZ的要求编码运行,初学,不知道回答的对不对。
霜之哀伤 2008-03-26
  • 打赏
  • 举报
回复
接口里面不能有变量,都是常量。
corsail 2008-03-26
  • 打赏
  • 举报
回复
The field i is ambiguous。。。

62,623

社区成员

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

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