(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)