Изменение унаследованных параметров с супер на подкласс - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть задание о врачах и рецептах. В одном из классов я не должен использовать 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 в конструкторе. Рейт всегда равен 3 с новым P-ресептом (рецепт контроля рождаемости).

public class PResept extends HvitResept {

  public PResept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID, **int reit**) {
    super(legemiddel, utskrivendeLege, pasientID, reit);
  }
}

Ответы [ 2 ]

1 голос
/ 08 февраля 2020
public class PResept extends HvitResept {
  private static final int reit = 3;
  public PResept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID) {
    super(legemiddel, utskrivendeLege, pasientID, reit);
  }
}

Объявление этой переменной как private stati c и final не будет занимать каждый раз, когда мы создаем новый объект типа PResept, а также значение не может быть изменено из-за final.

1 голос
/ 08 февраля 2020
public class PResept extends HvitResept {

  public PResept(Legemiddel legemiddel, Lege utskrivendeLege, int pasientID) {
    super(legemiddel, utskrivendeLege, pasientID, 3);
  }
}

Вы можете позвонить super(...); с желаемыми значениями. super вызовет конструктор родительского класса.

...