使用super访问超类成员

super的第二种形式的用法与this相似,只不过他引用的是子类的超类.这种用法基本形式如下所示:
super.member
这里,member是方法或实例变量.
这种形式多用于子类的成员名隐藏了超类中同名成员的情况.考虑下面这个层次结构:
public class test2
{
    // @param args
    public static void main(String args[])
    {
     childClass $obj = new childClass();
     System.out.println($obj.publicReturnInt());
     System.out.println($obj.superPublicReturnInt());
    }
}
class childClass extends parentClass
{
    childClass()
    {
        super(100);
        System.out.println("childClass init");
    }
    
    int publicReturnInt()
    {
        return 0;
    }
    
    int superPublicReturnInt()
    {
        return super.publicReturnInt();
    }
}
class parentClass
{
    
    private int num;
    
    parentClass(int n)
    {
        System.out.println("parentClass init");
        num = n;
    }
    
    int publicReturnInt()
    {
        return returnInt();
    }
    
    private int returnInt()
    {
        return num;
    }
    
}
输出:
parentClass init
childClass init
0
100
尽管childClass中的成员方法隐藏了parentClass中的publicReturnInt()方法,但是super允许访问定义于超类中的publicReturnInt()方法.