java中super的使用方法

Java中的super关键字用于访问父类的方法和变量,其主要用法包括:调用父类构造函数、访问父类变量、调用父类方法和访问父类的私有方法。

Java 中 super 的使用

Java 中的 super 关键字用于访问父类的方法和变量。它主要在以下几种情况下使用:

1. 调用父类构造函数

在子类的构造函数中,可以使用 super() 语句调用父类的构造函数。如果省略 super() 语句,则编译器会自动添加一个隐式调用到默认的无参构造函数。

2. 访问父类变量

要访问父类的变量,可以在子类中使用 super 关键字,后跟变量名。例如:

class Parent {
    int age;
}

class Child extends Parent {
    void printAge() {
        System.out.println("Age: " + super.age);
    }
}

3. 调用父类方法

要调用父类的方法,可以在子类中使用 super.methodName() 语法。例如:

class Parent {
    void printName() {
        System.out.println("Parent's name");
    }
}

class Child extends Parent {
    void printName() {
        super.printName();
        System.out.println("Child's name");
    }
}

4. 访问父类的私有方法和变量

在正常情况下,无法访问父类的私有方法和变量。但是,通过在子类中使用 super 关键字,可以访问私有方法,但不适用于私有变量。

在以下示例中,Parent 类有一个私有方法 displaySecret()

class Parent {
    private void displaySecret() {
        System.out.println("Secret message");
    }
}

class Child extends Parent {
    void accessSecret() {
        super.displaySecret();
    }
}

注意:只有当父类和子类都位于同一个包中时,才能访问私有成员。