java 中的super()
时间: 2024-01-06 14:05:07 浏览: 29
在Java中,super()是一个关键字,用于调用父类的构造方法。子类的构造方法可以使用super()在调用自己的构造方法之前,先调用父类的构造方法,从而完成对父类属性的初始化。
super()的语法格式为:
```
super();
```
也可以带上参数,指定要调用的父类构造方法的参数:
```
super(parameter list);
```
使用super()调用父类的默认构造方法时,可以省略参数列表。如果父类没有默认的构造方法,子类必须显式调用带参数的父类构造方法。
需要注意的是,super()只能在构造方法中使用,而且必须是第一条语句。因为子类的构造方法必须先调用父类的构造方法,否则父类的实例变量和实例方法都没有被初始化,而子类又依赖于这些变量和方法,会导致程序出错。
下面是一个简单的例子,用于说明super()的用法:
```
class Parent {
int x;
public Parent(int x) {
this.x = x;
}
}
class Child extends Parent {
int y;
public Child(int x, int y) {
super(x);
this.y = y;
}
}
public class Test {
public static void main(String[] args) {
Child c = new Child(10, 20);
System.out.println("x = " + c.x);
System.out.println("y = " + c.y);
}
}
```
在上面的例子中,Child类继承自Parent类,使用super(x)调用了Parent类的构造方法来初始化实例变量x,然后再初始化自己的实例变量y。最终输出结果为:
```
x = 10
y = 20
```