无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(javasuper) Java关键字super超详细解释 Java 中的 super 关键字 全网首发(图文详解1)

前沿技术 Micheal 6个月前 (06-26) 82次浏览 已收录 扫描二维码

(javasuper) Java关键字super超详细解释

Java中的super关键字有着特别的用途,主要用于访问父类的属性、方法和构造器。在详细解释和使用super之前,让我们先了解一下它的基本功能:

  • 访问父类属性:当子类和父类有相同的成员变量时,可以使用super来引用父类的变量。
  • 调用父类方法:当子类重写了父类的方法时,可以通过super来调用父类中被重写的方法。
  • 调用父类构造器:在子类构造器中,可以通过super()来调用父类的构造器。必须注意,这个调用必须是构造器中的第一个语句。

super关键字的使用

以下是关于如何使用super关键字的详细过程和代码编写示例。

示例 1:访问父类属性

假设有一个父类Vehicle,和一个继承自Vehicle的子类Car

class Vehicle {
    String category = "Vehicle";
}

class Car extends Vehicle {
    String category = "Car";

    void printCategory() {
        System.out.println(super.category); // 打印父类的category属性
        System.out.println(this.category);  // 打印子类的category属性
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.printCategory();
    }
}

运行上面的代码会输出:

Vehicle
Car

示例 2:调用父类方法

假设继续使用上述的Vehicle类和Car类,但这次我们给Vehicle类添加一个方法。

class Vehicle {
    void display() {
        System.out.println("这是一个交通工具。");
    }
}

class Car extends Vehicle {
    void display() {
        super.display(); // 调用父类的display方法
        System.out.println("这是一辆车。");
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.display();
    }
}

运行上面的代码会输出:

这是一个交通工具。
这是一辆车。

示例 3:调用父类构造器

在构造器中使用super来调用父类构造器:

class Vehicle {
    Vehicle() {
        System.out.println("Vehicle构造器被调用");
    }
}

class Car extends Vehicle {
    Car() {
        super(); // 调用父类的构造器
        System.out.println("Car构造器被调用");
    }
}

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
    }
}

运行上面的代码会输出:

Vehicle构造器被调用
Car构造器被调用

在使用super关键字时需要注意:

  • 如果子类构造器没有显式地调用super(),则Java会自动调用父类的无参构造器。
  • 如果父类没有无参构造器且子类的构造器没有调用super显示地调用父类其他构造器,则编译失败。
  • super关键字的调用必须是子类构造器的第一个语句。
  • super不能在静态方法中使用,因为静态方法是属于类的,不依赖于任何对象。

这就是super关键字的详细解释以及使用方法。希望这些例子有助于你更好地理解如何在Java编程中利用这个关键字。
(datediff mysql) Mysql DATEDIFF函数用法总结示例详解 MySQL中的DATEDIFF函数:计算日期差值 全网首发(图文详解1)
(生存猎属性) 魔兽世界wlk怀旧服生存猎堆什么属性 生存猎属性优先级选择推荐 魔兽世界怀旧服WLK生存猎人属性优先级 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝