我想访问父类(super class)中的实例变量x
。
我找不到它的语法。这可能吗?
public class SuperBoss {
int x = 10;
}
public class Boss extends SuperBoss {
int x = 2;
public static void main ( String[] args ) {
Boss b = new Boss();
System.out.println(b.x); //prints out 2, I want it to print out 10
}
我一直在尝试使用关键字“super”但没有成功。
最佳答案
它打印出 2
因为你在 Boss
中声明 int x = 2
隐藏声明SuperBoss
x
通常您会使用 super
关键字来显式访问父类(super class)的 public
字段,但是这在 static
上下文中不起作用的主要方法。您可以定义一个小的辅助函数,它将为您获取父类(super class)的 x
public class Boss extends SuperBoss {
int x = 2;
public int getSuperX() {
return super.x;
}
public static void main ( String[] args ) {
Boss b = new Boss();
System.out.println(b.getSuperX()); //prints out 2, I want it to print out 10
}
}
关于java - 如何覆盖main中的实例变量/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269163/