在此示例中如何使用关键字 "super"?

How can I use the keyword "super" in this example?

这是我的超级class...

package com.company;

import java.util.Random;

public class Terning
{

// Make a random number generator for a 10 sided dice.
Random random = new Random();

public void RanNum()
{
    for (int i = 0; i < 10; i++)
    {
        int answer = random.nextInt(10) + 1;

        System.out.println(answer);
    }
}
}

这是我的子class...

package com.company;

// Extend FlaskTerning to inherit Terning methods
public class FalskTerning extends  Terning
{


@Override
// Could be given another name to distinguis between the superclass method and the subclass method

public void RanNum() {
    super.RanNum();

    // The if-statement I want to make.
    if (bla bla bla)
    {
        
        answer == 9;
    }
}
}

最后,这是我的主要...

package com.company;

// Main method
public class Main {

public static void main(String[] args)


{

    Terning terning = new Terning();
    terning.RanNum();
}
}

背景故事:我做了一个 'x' 面骰子(这里我们尝试 10 个)和一个“假骰子”。我想实现一个子和超级class(继承)。

问题:如何使子class“FalskTerning”(FalseDice) 获取“Terning”(Dice) 生成的随机数的值并将其放入 if 语句中。示例(如果数字 x 小于 5,则答案为 10)?

此外,我想知道,为什么我不能在我的子class“FalskTerning”的 if 语句中使用我的超级class“Terning”的“答案”。

祝你有愉快的一天!

父 class 方法必须 return 需要解释的内容,因此需要重写。例如:

public class Terning {
  public int rollDie() {
    return random.nextInt(10) + 1;
  }
  ... other stuff ...
}

现在 subclass 可以调用父方法和 return 不同的值。使用您的示例 return 如果掷骰数小于 5,则为 10,您可以执行以下操作。

public class FalskTerning {
  @Override
  public int rollDie() {
    int roll = super.rollDie();
    if (roll < 5) {
      return 10;
    }
    return roll;
  }
  ... other stuff ...
}