【发布时间】:2020-02-08 12:10:19
【问题描述】:
我有一个关于医生和处方的任务。在其中一个类中,我不应该在构造函数(子类)中使用 int reit,就像超类一样。作业中的提示是 int reit 应始终在开处方时从 3 开始(一个人可以使用多少次处方)。我应该如何将其从 int reit 更改为 3(正如我从课堂上一位讲师的暗示中理解的那样)。
一切都在挪威,因为我们不得不这样做,希望没关系。 感谢您的帮助!
这是第一堂课:
public abstract class Resept {
protected int id = 0;
protected static int teller = 1;
protected int pasientID = 0;
protected int reit = 0;
protected Legemiddel legemiddel;
protected Lege utskrivendeLege;
public Resept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID, int reit) {
this.legemiddel = legemiddel;
this.utskrivendeLege = utskrivendeLege;
this.id = teller;
this.reit = reit;
this.pasientID = pasientID;
}
}
这是下一个:
public class HvitResept extends Resept {
public HvitResept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID, int reit) {
super(legemiddel, utskrivendeLege, pasientID, reit);
}
}
在下一个类中,我们不应该在构造函数中编写 int reit。 Reit 始终为 3,带有新的 P-reept(节育处方)。
public class PResept extends HvitResept {
public PResept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID, **int reit**) {
super(legemiddel, utskrivendeLege, pasientID, reit);
}
}
【问题讨论】:
-
在构造函数中,您可以将其设置为等于 3。然后有一个设置器在需要时更改该值。或者只是不要在构造函数中设置它并在类中让它等于 3。
-
只是不要将 int reit 添加到 PResept 构造函数中,而是用 3 而不是 reit 调用 super
-
当从构造函数中移除 int reit,并在 super(...) 中添加 3;我仍然收到一条错误消息:Required: Legemiddel, Lege, int, int, 并且实际参数列表和形式参数列表的长度不同。
-
无论谁是产品/项目经理或客户,请告诉他们将源代码保持在非英语语法中是非常糟糕的。源代码的可维护性、支持和国际化——忘记这一切吧。
-
我认为他们想要挪威语,这样我们就可以根据我们给所有东西的名称完全理解我们在做什么。但是我们的课本是英文的,所以是的.. 有时有点令人沮丧。
标签: java inheritance constructor subclass