在Java中,定义交通工具、汽车、火车和飞机这些类时,我们可以将交通工具作为一个基类(`Vehicle`),而汽车(`Car`)、火车(`Train`)和飞机(`Plane`)作为`Vehicle`的子类。每个子类都可以有多个构造方法,并可以使用初始化块来提取公共代码。 以下是一个示例的Java代码: ```java // 交通工具基类 public class Vehicle { // 公共属性 protected String name; protected int maxSpeed; // 初始化块,用于在每次构造时执行的通用代码 { System.out.println("Vehicle is being initialized."); } // 无参构造方法 public Vehicle() { // 这里可以调用具体的初始化代码,但在这个例子中我们仅打印日志 } // 带name和maxSpeed的构造方法 public Vehicle(String name, int maxSpeed) { this.name = name; this.maxSpeed = maxSpeed; } // 另一个带额外参数的构造方法(示例) public Vehicle(String name, int maxSpeed, String extraInfo) { this(name, maxSpeed); // 调用带两个参数的构造方法 // 额外的初始化代码... System.out.println("Extra info: " + extraInfo); } // 其他方法和属性... } // 汽车类,继承自交通工具 public class Car extends Vehicle { // 私有属性(汽车特有的) private int numberOfSeats; // 初始化块,仅在Car的构造方法中执行 { System.out.println("Car is being initialized."); } // 无参构造方法 public Car() { super(); // 调用父类的无参构造方法 // Car特有的初始化代码... } // 带name、maxSpeed和numberOfSeats的构造方法 public Car(String name, int maxSpeed, int numberOfSeats) { super(name, maxSpeed); // 调用父类的带两个参数的构造方法 this.numberOfSeats = numberOfSeats; } // 其他方法和属性... } // 火车类和飞机类与汽车类类似,可以有自己的属性和构造方法 // ... // 主类,用于测试 public class Main { public static void main(String[] args) { Car myCar = new Car("Toyota", 200, 5); // 这里的输出将包括初始化块和构造方法中的打印语句 // ... } } ``` 在这个示例中,我们定义了`Vehicle`基类,并在其中包含了初始化块和多个构造方法。然后,我们定义了`Car`类作为`Vehicle`的子类,并为它添加了特有的属性和构造方法。同样,我们可以为火车和飞机类做相同的操作。注意,在子类的构造方法中,我们使用`super()`调用来确保父类的构造方法被正确地调用。

点赞(0)
×
关注公众号,登录后继续创作
或点击进入高级版AI
扫码关注后未收到验证码,回复【登录】二字获取验证码
发表
评论
返回
顶部