java - 如何覆盖main中的实例变量/方法?

标签 java inheritance

我想访问父类(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/

相关文章:

java - 如何使用 Exchangeratesapi.io 和 okhttp 更改汇率基础货币,并在微调器中选择所有基础货币?

java - 容器加载后创建了多少个servlet实例?辛格尔顿?

java - 如果将 SharedPreferences 放在那里,代码将不起作用

Python 继承、方法重载和装饰

c++ - 编译时模板限制 C++

python - 在 Django 中,是否可以为某个父类(super class)定义外键,但在查询时返回了子类?

c# - 枚举支持继承的位字段

java - 在 DocumentListener 中访问 JTextField

java - JasperReports - JSON 数据报告在 Java 中运行时显示空值

javascript - 从 Java Script 子类中的重写方法调用父类(super class)方法?