通俗易懂系列:JAVA中super关键字的用法以及举例

为什么要用super?

在 Java 中,super 关键字用于访问父类的成员变量、方法或构造方法。主要有以下几个情况下需要使用 super 关键字:

1.访问父类的成员变量: 如果子类和父类具有同名的成员变量,为了明确指定访问父类的成员变量,可以使用 super 关键字。

class Parent {
    int value = 10;
}

class Child extends Parent {
    int value = 20;

    public void display() {
        System.out.println("Child value: " + value); // 输出子类的value
        System.out.println("Parent value: " + super.value); // 输出父类的value
    }
}

2.调用父类的方法: 如果子类覆盖了父类的方法,但是仍然想在子类中调用父类的方法,可以使用 super 关键字。

class Parent {
    public void display() {
        System.out.println("Parent display");
    }
}

class Child extends Parent {
    @Override
    public void display() {
        super.display(); // 调用父类的display方法
        System.out.println("Child display");
    }
}

3.调用父类的构造方法: 在子类的构造方法中,可以使用 super() 来调用父类的构造方法,以完成父类的初始化工作。

class Parent {
    public Parent() {
        System.out.println("Parent constructor");
    }
}

class Child extends Parent {
    public Child() {
        super(); // 调用父类的构造方法
        System.out.println("Child constructor");
    }
}

一个简单的例子

使用 super 关键字可以方便地访问父类的成员、方法和构造方法,从而实现代码的复用和扩展。
假设我们有一个 Vehicle 类,它有一个 start() 方法来启动车辆,并且有一个子类 Car,它继承了 Vehicle 类并覆盖了 start() 方法。在 Car 类中,我们想要在启动汽车之前先进行一些特定于汽车的初始化工作,然后再调用父类 Vehicle 的 start() 方法启动汽车。

class Vehicle {
    public void start() {
        System.out.println("Vehicle is starting...");
    }
}

class Car extends Vehicle {
    @Override
    public void start() {
        // 在启动汽车之前进行特定于汽车的初始化工作
        System.out.println("Initializing car...");
        
        // 调用父类的start()方法来启动汽车
        super.start();
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.start();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值