.super关键字的两个作用分别是什么?
时间: 2023-11-09 18:05:46 浏览: 34
在Java中,`super`关键字有两个主要的作用:
1. 调用父类的构造方法:
当子类创建对象时,会隐式调用父类的无参构造方法来初始化父类的成员变量。但是,如果父类中没有无参构造方法,或者我们想要显式地调用父类的有参构造方法,就可以使用`super`关键字来实现。通过`super`关键字,我们可以调用父类中特定的构造方法,并传递必要的参数。
例如:
```java
public class ChildClass extends ParentClass {
public ChildClass(int num) {
super(num); // 调用父类的有参构造方法
}
}
```
2. 访问父类的成员变量和方法:
在子类中,如果存在与父类同名的成员变量或方法,使用`super`关键字可以访问父类中的成员变量或调用父类中的方法。这种情况下,`super`关键字可以明确指示编译器去访问父类的成员。
例如:
```java
public class ParentClass {
protected int num;
public void display() {
System.out.println("ParentClass display method");
}
}
public class ChildClass extends ParentClass {
protected int num;
public void display() {
super.num = 10; // 访问父类的成员变量
super.display(); // 调用父类的方法
System.out.println("ChildClass display method");
}
}
```
在上述示例中,子类`ChildClass`中存在与父类`ParentClass`同名的成员变量`num`,通过使用`super`关键字,我们可以访问父类中的成员变量并调用父类的方法。
总结起来,`super`关键字的两个作用是调用父类的构造方法和访问父类的成员变量和方法。
希望这个解答对您有帮助!如果您还有其他问题,请随时提问。