编写一个Car类,具有final类型的属性品牌,具有功能drive;定义其子类Aodi和Benchi,具有属性:价格、型号、;具有功能:变速;定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特性
时间: 2024-09-29 17:10:30 浏览: 31
Java Swing图形用户界面设计(II)
在Java中,你可以按照以下步骤编写这个程序:
首先,定义一个名为`Car`的抽象基类,它有一个final类型的属性`brand`表示品牌,以及一个方法`drive`代表车辆的基本驾驶行为:
```java
public abstract class Car {
private final String brand;
public Car(String brand) {
this.brand = brand;
}
// 定义基本驾驶方法
public abstract void drive();
// 获取品牌属性
public String getBrand() {
return brand;
}
}
```
然后,我们有两个具体的子类`Audi`和`Benz`,它们继承自`Car`,添加了新的属性(价格`price`和型号`model`),以及各自的变速方法`shiftGear`:
```java
class Audi extends Car {
private double price;
private String model;
public Audi(String brand, double price, String model) {
super(brand);
this.price = price;
this.model = model;
}
@Override
public void drive() {
System.out.println("Driving an Audi " + model);
}
// 添加变速方法
public void shiftGear(int gear) {
System.out.println("Shifting to gear " + gear + " for Audi " + model);
}
}
class Benz extends Car {
private double price;
private String model;
public Benz(String brand, double price, String model) {
super(brand);
this.price = price;
this.model = model;
}
@Override
public void drive() {
System.out.println("Driving a Benz " + model);
}
// 类似于Audi的变速方法
public void shiftGear(int gear) {
System.out.println("Shifting to gear " + gear + " for Benz " + model);
}
}
```
最后,在主类`Main`中,我们创建这两个子类的对象,并测试它们各自的方法:
```java
public class Main {
public static void main(String[] args) {
// 创建Audi对象
Audi audi = new Audi("Audi", 50000, "A4");
audi.drive(); // 输出:Driving an Audi A4
audi.shiftGear(5); // 输出:Shifting to gear 5 for Audi A4
// 创建Benz对象
Benz benz = new Benz("Benz", 60000, "S600");
benz.drive(); // 输出:Driving a Benz S600
benz.shiftGear(6); // 输出:Shifting to gear 6 for Benz S600
}
}
```
阅读全文