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

Java 继承:子类中超类的隐藏变量,java,class,inheritance,subclass,superclass,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? } } 如何在子类中显

考虑以下代码:

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?
  }

}

如何在子类中显示超类的隐藏变量?

您可以使用
super
访问它:

System.out.println(super.j);
但是您可以在类
A
中使用
super
,因此您可以执行以下操作:

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
    }
}

您可以使用
super
访问它:

System.out.println(super.j);
但是您可以在类
A
中使用
super
,因此您可以执行以下操作:

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
    }
}

您可以使用super从类中访问它。您需要为此创建一个方法。例如:

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
    }

}

您可以使用super从类中访问它。您需要为此创建一个方法。例如:

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
    }

}

认为这是一个可怕的做法。认为这是一个可怕的做法。