继承:子类中超类的隐藏变量

时间:2014-04-12 19:39:17

标签: java class inheritance subclass superclass

请考虑以下代码:

class B
{
     int j=15;
}

public class A extends B
{
  int j=10;

  public static void main(String[] args)
  {
      A obj =new A();
      System.out.println(obj.j);   // i now want to print j of class B which is hidden,how?
  }

}

我应该如何揭示子类中超类的隐藏变量?

2 个答案:

答案 0 :(得分:4)

您可以使用super

访问它
System.out.println(super.j);

但您可以在课程super中使用A,因此您可以执行以下操作:

public class A extends B
{
    int j = 10;

    public void print()
    {
        System.out.println(super.j);
    }

    public static void main(String[] args)
    {
        A obj = new A();
        System.out.println(obj.j); // 10
        obj.print(); // 15
    }
}

答案 1 :(得分:0)

你可以使用super从A类开始。您需要为此创建一个方法。例如:

class A extends B
{
    int j=10;

    int getSuperJ() {
        return super.j;
    }

    public static void main(String[] args)
    {
        A obj =new A();
        System.out.println(obj.j);   //10
        System.out.println(obj.getSuperJ());  //15
    }

}