2. 定义一个快递包裹类 Package,并由此派生出普通包裹类和加急包裹类。结果分析与结论
时间: 2024-08-05 12:00:52 浏览: 65
可以创建一个名为`Package`的基础类,用于描述一般的快递包裹特性,如重量、体积等。然后我们可以根据不同的需求派生出两个子类,比如`NormalPackage`和`UrgentPackage`。
```java
// 基础快递包裹类 - Package
class Package {
private String packageName;
private double weight;
private double volume;
// 构造函数
public Package(String name, double w, double v) {
packageName = name;
weight = w;
volume = v;
}
// 获取和设置属性的方法
public String getName() { return packageName; }
public double getWeight() { return weight; }
public double getVolume() { return volume; }
// 简单的描述信息方法
public void describe() {
System.out.println("这是一个普通的包裹,名称:" + packageName + ",重量:" + weight + "kg,体积:" + volume + "m^3");
}
}
// 普通包裹类 - NormalPackage (继承自Package)
class NormalPackage extends Package {
// 可能添加特殊处理或额外功能,如打折优惠
@Override
public void describe() {
super.describe();
System.out.println("这是一个普通包裹,享受常规服务。");
}
}
// 加急包裹类 - UrgentPackage (继承自Package)
class UrgentPackage extends Package {
// 可能提供快速配送或其他增值服务
@Override
public void describe() {
super.describe();
System.out.println("这是一个加急包裹,承诺优先送达。");
}
}
```
通过这种方式,我们可以根据不同类型的包裹调用对应的`describe()`方法,体现出多态性。例如:
```java
Package myPackage = new NormalPackage("书籍", 1.5, 0.1);
myPackage.describe();
Package urgentPackage = new UrgentPackage("文件", 0.5, 0.05);
urgentPackage.describe();
```
总结:
- 定义基础类 `Package` 和其子类 `NormalPackage` 和 `UrgentPackage` 实现了封装和继承的特性。
- 子类重写了 `describe()` 方法体现了多态,即同一种行为(描述包裹)因包裹类型的不同而有不同的表现。
- 结论:这样的设计使得代码更具灵活性,易于维护和扩展,可以根据实际需要添加新的包裹类型或定制化服务。
阅读全文