假设有一个交通工具类Vehicle,其中有transport()方法,表示运输,但不同的交通工具运输方式不一样,比如小车类Car运输方式是载人,卡车类Truck运输方式是载货,所以将transport()方法设置为抽象方法,让子类去具体实现。
时间: 2024-11-09 14:27:31 浏览: 12
java代码-请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方 法: 移 动(move()) , 设置 速 度(setSpeed(int speed)) , 加速 speedUp(), 减速 speedDown()等等. 最后在测试类 Vehicle 中的 main()中实例化一个交通工具对象,并通过方法给它初始化 speed,size 的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。
在面向对象设计中,当某个方法的行为在子类中有不同的实现策略时,可以将其设定为抽象方法。在这个例子中,我们有一个抽象类`Vehicle`,其中包含了一个抽象方法`transport()`。这个方法描述的是基本的运输行为,但是由于小车`Car`和卡车`Truck`有不同的运输目的(小车主要是载人,而卡车则是载货),因此`transport()`方法需要由具体的子类去提供定制化的实现。
例如,`Vehicle`类可能会像这样定义:
```java
abstract class Vehicle {
// 其他属性和方法...
// 抽象方法,每个子类需提供具体的运输实现
abstract void transport();
// 具体方法可以放在抽象类中,如果所有子类都共享同样的行为
public void commonAction() {
// ...
}
}
```
然后,小车类`Car`和卡车类`Truck`会分别实现这个`transport()`方法:
```java
class Car extends Vehicle {
@Override
void transport() {
System.out.println("Car is transporting passengers.");
}
}
class Truck extends Vehicle {
@Override
void transport() {
System.out.println("Truck is transporting cargo.");
}
}
```
这样做的好处在于,提高了代码的灵活性和复用性,每个子类都可以按其特性和需求来定制运输行为,同时保持了类结构的简洁和清晰。
阅读全文