Java运用面向对象的思想描述出租车和家庭轿车
时间: 2024-10-10 10:07:14 浏览: 20
在Java中,我们可以使用面向对象的设计原则来描述出租车和家庭轿车。首先,我们需要定义两个主要的类:`Vehicle`(车辆)作为父类,然后分别创建`Taxi`(出租车)和`FamilyCar`(家庭轿车)作为子类。
```java
// 定义一个抽象的 Vehicle 类
public abstract class Vehicle {
private String make;
private String model;
private int year;
// 建立构造函数,提供默认值
public Vehicle(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
// 抽象方法,表示所有车辆的基本行为
public abstract void drive();
// 共享的方法或属性
public String getMake() {
return make;
}
public String getModel() {
return model;
}
public int getYear() {
return year;
}
}
// 创建 Taxi 子类
public class Taxi extends Vehicle {
private double farePerKm;
// 特有的出租车功能
public Taxi(String make, String model, int year, double farePerKm) {
super(make, model, year);
this.farePerKm = farePerKm;
}
@Override
public void drive() {
System.out.println("The taxi is driving.");
}
// 可能特有的出租车行为,如计算费用
public double calculateFare(double distance) {
return distance * farePerKm;
}
}
// 创建 FamilyCar 子类
public class FamilyCar extends Vehicle {
private int seats;
// 特有的家庭轿车功能
public FamilyCar(String make, String model, int year, int seats) {
super(make, model, year);
this.seats = seats;
}
@Override
public void drive() {
System.out.println("The family car is driving.");
}
// 展示家庭轿车特点,比如座椅数量
public int getSeats() {
return seats;
}
}
```
在这个例子中,`Vehicle`类具有基本的属性(make, model, year)和通用的行为(drive),而`Taxi`和`FamilyCar`子类继承了这些属性,并覆盖了`drive`方法,添加了各自的特有属性(farePerKm 对于出租车,seats 对于家庭车)和相应的行为(calculateFare 对于出租车)。这就是用面向对象的方式描述这两种不同类型车辆的简单实现。
阅读全文