在不使用超级

时间:2018-07-02 11:52:25

标签: java inheritance

我只是在阅读有关Java基础的知识,并且遇到了无法找到正确答案的情况。在java中,super关键字在java中用于访问父类属性。所以我的问题是,如果我们不允许访问超级关键字,是否仍然可以访问父类属性?

1 个答案:

答案 0 :(得分:0)

让我们举个例子来理解这一点:在下面的程序中,我们在子类中声明了一个数据成员num,同名成员已经存在于父类中。*无法访问不使用super关键字的父类的num变量。 *。


//Parent class or Superclass or base class
class Superclass
{
   int num = 100;
}
//Child class or subclass or derived class
class Subclass extends Superclass
{
   /* The same variable num is declared in the Subclass
    * which is already present in the Superclass
    */
    int num = 110;
    void printNumber(){
    System.out.println(num);
    }
    public static void main(String args[]){
    Subclass obj= new Subclass();
    obj.printNumber();  
    }
}

输出: 110

访问父类的num变量: 通过调用这样的变量,如果两个类(父级和子级)具有相同的变量,我们可以访问父类的变量。

super.variable_name 让我们以上面看到的示例为例,这次在print语句中,我们传递的是super.num而不是num。

class Superclass
{
   int num = 100;
}
class Subclass extends Superclass
{
   int num = 110;
   void printNumber(){
    /* Note that instead of writing num we are
     * writing super.num in the print statement
     * this refers to the num variable of Superclass
     */
    System.out.println(super.num);
   }
   public static void main(String args[]){
    Subclass obj= new Subclass();
    obj.printNumber();  
   }
}

输出: 100 如您所见,通过使用super.num,我们访问了父类的num变量。