admin 管理员组

文章数量: 887021


2024年1月17日发(作者:如何做网页制作)

java中super的用法

一、super关键字的概述

在Java编程语言中,super关键字常用于子类中,用于引用父类的成员变量、方法和构造方法。通过使用super关键字,子类可以直接访问并调用父类中被隐藏或重写的成员。

二、使用super关键字访问父类的成员变量和方法

2.1 访问父类的成员变量

子类继承了父类的所有非私有成员变量,在子类中可以直接访问继承而来的这些成员变量。如果子类中定义了与父类同名的成员变量,则可以通过使用super关键字来区分并访问父类中的成员变量。

例如,下面是一个简单的示例代码:

```java

class Parent {

int num = 10;

}

class Child extends Parent {

int num = 20;

void display() {

n("Child num: " + num);

n("Parent num: " + );

}

}

public class Main {

public static void main(String[] args) {

Child child = new Child();

y();

}

}

```

输出结果为:

```

Child num: 20

Parent num: 10

```

可以看到,Child类中定义了一个与Parent同名的成员变量num,并且在display()方法中通过来访问父类中的num变量。

2.2 调用父类的普通方法

与访问父类的成员变量类似,子类可以使用super关键字来调用父类中的普通方法。在子类中重写了父类的方法后,想要调用父类的方法可以使用super关键字。

例如,下面是一个简单的示例代码:

```java

class Parent {

void display() {

n("Parent display() called");

}

}

class Child extends Parent {

@Override

void display() {

y(); // 调用父类的display()方法

n("Child display() called");

}

}

public class Main {

public static void main(String[] args) {

Child child = new Child();

y();

}

}

```

输出结果为:

```

Parent display() called

Child display() called

```

可以看到,在Child类中通过y()来调用父类中的display()方法。

三、使用super关键字调用父类的构造方法

3.1 默认情况下调用父类无参构造方法

当子类创建对象时,并且没有指定要调用父类哪个构造方法时,默认会自动调用父类的无参构造方法。如果需要在子类中显式地调用父类的有参或无参构造方法,可以使用super关键字。

例如,下面是一个简单的示例代码:

```java

class Parent {

Parent() {

n("Parent constructor without parameter");

}

Parent(int num) {

n("Parent constructor with parameter: " + num);

}

}

class Child extends Parent {

Child() {

super(); // 调用父类的无参构造方法

n("Child constructor");

}

}

public class Main {

public static void main(String[] args) {

Child child = new Child();

}

}

```

输出结果为:

```

Parent constructor without parameter

Child constructor

```

可以看到,在Child类的构造方法中通过super()调用了父类的无参构造方法。

3.2 显式调用父类的有参构造方法

如果需要在子类中显式地调用父类的有参构造方法,在子类的构造方法中使用super关键字,并传入相应的参数。

例如,下面是一个简单的示例代码:

```java

class Parent {

Parent(int num) {

n("Parent constructor with parameter: " + num);

}

}

class Child extends Parent {

Child() {

super(10); // 调用父类的有参构造方法

n("Child constructor");

}

}

public class Main {

public static void main(String[] args) {

Child child = new Child();

}

}

```

输出结果为:

```

Parent constructor with parameter: 10

Child constructor

```

可以看到,在Child类的构造方法中通过super(10)调用了父类的有参构造方法。

四、总结

在Java编程语言中,super关键字常用于子类中,主要用于访问和调用父类中被隐藏或重写的成员变量、方法和构造方法。通过使用super关键字,子类可以直接访问父类的成员,并调用父类的方法和构造方法。在正确理解和使用super关键字的基础上,可以写出更加健壮、灵活和易于维护的面向对象程序。


本文标签: 父类 调用 关键字