关于java继承与实现抽象类和接口的变量问题

不能说的秘密go 2015-03-07 11:59:37
interface A{
int x = 10;

}
class B{
int x =100;
}
class C extends B implements A {
public void pX(){
System.out.println(x); //这样写编译器识别不了会报错 我想问怎么在这里输出 10 和 100
}
public static void main(String[] args) {
new C().pX();
}
}
...全文
159 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
宁波老花 2015-03-08
  • 打赏
  • 举报
回复 3
因为在接口中的全局变量默认都是 public static final ; 就算你在接口中写了int x=10; 实际上定义的还是public static final int x=10; 因为有final关键字,所以变量x的值是不可以被修改的。 但是你继承了类B,也继承了一个x变量,且值与接口红定义的不同,所以就会报错。 修改错误的方法就是:将其中一个变量x改成任何其他字母。 否则你再程序中使用x变量时,程序根本不知道你要使用的是接口的x变量还是继承的类的x变量

50,535

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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