如何覆盖方法使其仅返回数字2?(JAVA)

Ste*_*ski 2 java overriding

import java.util.Random;

public class Dice {
private int numOfSides;
private int[] sideValues = new int[getNumOfSides()];


public Dice(int numOfSides) {
    this.setNumOfSides(numOfSides);


    for(int i = 0; i < this.sideValues.length; i++) {
        sideValues[i] = i + 1;

    }
}
    public int Roll() {
        return (new Random()).nextInt(getNumOfSides()) + 1;


    }
    public int getNumOfSides() {
        return numOfSides;
    }
    public void setNumOfSides(int numOfSides) {
        this.numOfSides = numOfSides;
    }

}

import java.util.Random;

public class CheatDice extends Dice {



public CheatDice(int numOfSides) {
    super(numOfSides);

}

public int Roll() {
    return 2;


 }

}

 public class DiceTester {
public static void main(String[] args) {
    Dice a = new Dice(6);
    System.out.println(a.Roll());


    Dice b = new Dice(2120202);
    System.out.println(b.Roll());

    Dice d = new Dice(5);
    System.out.println(d.Roll());


  }

}
Run Code Online (Sandbox Code Playgroud)

如何覆盖Roll()方法,使其仅打印数字2?我无法理解压倒一切.

编辑:谢谢你的回答.有人可以解释为什么你需要一个与父类和子类构造函数具有相同签名的构造函数?还是我弄错了?

Pri*_*jee 7

调用Roll时,在代码中进行以下更改:

Dice d = new CheatDice(5);
Run Code Online (Sandbox Code Playgroud)

现在你会看到2被退回.