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