📅  最后修改于: 2023-12-03 14:49:55.695000             🧑  作者: Mango
在Java中,当我们需要实现一个包含继承关系的类时,可以使用构造函数来分配并初始化超类中的成员。
一个简单的示例程序:
class Vehicle {
protected int numOfWheels;
public Vehicle(int numOfWheels) {
this.numOfWheels = numOfWheels;
}
public void printNumOfWheels() {
System.out.println("This vehicle has " + numOfWheels + " wheels");
}
}
class Car extends Vehicle {
private String brand;
public Car(int numOfWheels, String brand) {
super(numOfWheels);
this.brand = brand;
}
public void printBrand() {
System.out.println("The brand of this car is " + brand);
}
}
public class Main {
public static void main(String[] args) {
Car myCar = new Car(4, "Toyota");
myCar.printNumOfWheels();
myCar.printBrand();
}
}
在上面的示例程序中,我们定义了一个Vehicle类和一个继承自Vehicle类的Car类。
在Vehicle类中,我们定义了一个受保护的成员变量numOfWheels和一个公有的构造函数,构造函数接收一个表示车轮数量的整型参数并将其分配给numOfWheels成员变量。此外,我们还定义了一个public方法printNumOfWheels,用于打印车轮数量的信息。
在Car类中,我们定义了一个私有变量brand和一个公有构造函数。构造函数接收两个参数,一个表示车轮数量的整型参数和一个表示车品牌的字符串参数。在构造函数中,我们调用超类Vehicle的构造函数并将车轮数量传递给它。然后我们将传递进来的车品牌分配给brand成员变量。此外,我们还定义了一个public方法printBrand,用于打印车品牌信息。
在程序的main函数中,我们创建了一个Car对象并传递了4个车轮和"Toyota"作为参数。然后我们调用了myCar的printNumOfWheels和printBrand方法,分别打印了车轮数量和车品牌信息。
通过这个示例,我们可以看到如何使用构造函数来分配并初始化超类中的成员。同时,在子类的构造函数中,我们还可以对自己的成员变量进行初始化。