编写Car(小汽车)类继承自抽象类Vehicle,增加属性seats(座位),(seats初始化后不能被修改),增加成员方法showCar(打印小汽车信息(覆写toString))
时间: 2024-12-08 16:14:12 浏览: 18
在面向对象编程中,你可以创建一个名为`Car`的类,它继承自一个抽象类`Vehicle`,以便利用多态性和封装特性。这里是一个简单的示例:
```java
public abstract class Vehicle {
// 抽象方法,所有车辆都需要有名称
public abstract String getName();
// 共享的方法,例如显示车辆信息
public void showInfo() {
System.out.println("This is a vehicle.");
}
}
public class Car extends Vehicle {
private final int seats; // 使用final修饰防止seats修改
private String modelName;
// 构造函数
public Car(int seats, String modelName) {
if (seats < 0) { // 验证座位数合法性
throw new IllegalArgumentException("Number of seats cannot be negative.");
}
this.seats = seats;
this.modelName = modelName;
}
@Override
public String getName() {
return modelName;
}
// 实现showCar方法,覆盖父类的showInfo()
@Override
public String showCar() {
return "I am a Car with " + seats + " seats and the name is " + modelName;
}
// 客户端无法直接修改seats,因为它是final
// public void setSeats(int seats) {
// this.seats = seats; // 这将抛出编译错误
// }
}
```
在这个例子中,`Car`类继承了`Vehicle`的抽象方法`getName()`并实现了`showCar()`方法。`seats`属性作为常量被设置,确保其值在创建时就确定,并且后续不可更改。
阅读全文