c语言编程笔录

首页 >   > 笔记大全

笔记大全

java中super关键字的作用是什么

更新时间:2023-06-28

介绍

在Java编程中,super关键字用于引用父类的成员变量、成员方法以及构造方法。它提供了一种简便的方式来访问父类的属性和行为。通过使用super关键字,我们可以在子类中重写父类的方法,并且在子类方法中调用父类的方法,以实现继承的特性。

使用super关键字调用父类的方法

在子类中,我们可以使用super关键字来调用父类的实例方法。假设我们有一个父类Person和一个子类Student:

class Person {
    void introduce() {
        System.out.println("我是一个人。");
    }
}

class Student extends Person {
    void introduce() {
        super.introduce(); // 调用父类的introduce方法
        System.out.println("我是一个学生。");
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.introduce();
    }
}

上述代码中,Student类继承自Person类,并重写了introduce方法。在子类的introduce方法中,我们使用super.introduce()调用了父类的introduce方法。这样,在子类中既可以执行子类特有的行为,又能保留父类的行为。

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

在子类的构造方法中,我们可以使用super关键字来调用父类的构造方法。这样,我们可以在子类的构造方法中先执行父类的初始化工作,再执行子类的初始化工作。下面是一个例子:

class Person {
    private String name;

    Person(String name) {
        this.name = name;
    }
}

class Student extends Person {
    private int grade;

    Student(String name, int grade) {
        super(name); // 调用父类的构造方法
        this.grade = grade;
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student("张三", 10);
    }
}

上述代码中,Person类有一个带有name参数的构造方法,Student类继承了Person类,并拥有一个带有name和grade参数的构造方法。在Student类的构造方法中,我们使用super(name)调用了父类的构造方法,以初始化父类的属性。这样,我们可以保证父类的属性在子类创建对象时得到正确的初始化。

总结

通过使用super关键字,我们可以在子类中方便地访问父类的属性和方法,实现代码的重用和继承的特性。在子类的方法中调用父类的方法时,使用super关键字可以区分父类与子类的同名方法,并避免死循环。