作业中与问题相关的部分:“您的任务是完成程序。...此外,您应该编写同样从 Tool 类派生的 Drill 类。Drill 类有两个属性:型号和钻头的最大转速。两者都有类必须实现用于打印工具信息的 printInfo 方法,如示例 print 中所示。”
所以,我需要为从超类 Tool 的子类 Drill 类创建的两个钻孔对象获取价格 (1.75)m 重量 (175)、型号 "Black&Decker A" 和 rpm (1350)。但是,重量和价格是超类中的私有属性,所以我的子类不能使用它们。当然,我可以毫无困难地使用和打印模型和 rpm 值。
谁能在这里指出我正确的方向?我不是要你做我的任务。我已经被困了16个小时左右。我尝试覆盖 Tool 类的返回方法无济于事。我只能在这个作业中编辑子类 Drill。
这是相关代码的截断版本以及到目前为止我为 Drill 类编写的内容:(“...”指的是代码的截断)
测试班
public class TestClass {
public static void main(String args[]) {
...
Tool drill1, drill2
drill1 = new Drill(1.75, 175, "Black&Decker A", 1350);
drill2 = new Drill(2, 250, "Black&Decker B", 3000);
...
((Drill)drill1).printInfo();
System.out.println();
((Drill)drill2).printInfo();
...
}
}
工具类
abstract class Tool {
private double weight; // These guys
private int price; // Causing all the trouble here
public Tool(double p, int h) {
weight = p;
price = h;
}
public double ReturnWeight() {
return weight;
}
public int ReturnPrice() {
return price;
}
public abstract void printInfo();
}
钻级
class Drill extends Tool {
double weight;
int price;
String model;
int rpm;
Drill (double y, int u, String i, int j) {
super(weight,price); // Have to do this because of the Tool class
weight = y
price = u;
model = i;
rpm = j;
}
//my pitiful attempts at overriding. Not even sure what to do here ***
public double ReturnWeight() {
return weight;
}
public int ReturnPrice() {
return price;
}
public void printInfo() {
System.out.println("Weight: " + weight);
System.out.println("Price: " + price);
System.out.println("Model: " + model);
System.out.println("Revolution speed: " + rpm);
}
}
示例打印应如下所示:
Weight: 1.75 kg
Price: 175 euros
Model: Black&Decker A
Revolution speed: 1350
Weight: 2.0 kg
Price: 250 euros
Model: Black&Decker B
Revolution speed: 3000
到目前为止,我只设法让模型和旋转速度正确。