如何解决在此示例中如何使用关键字“super”?
这是我的超类...
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);
}
}
}
这是我的子类...
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 个)和一个“假骰子”。我想实现一个子类和超类(继承)。
问题:我如何让子类“FalskTerning”(FalseDice)取“Terning”(Dice)产生的随机数的值并将其变成一个 if 语句。示例(如果数字 x 小于 5,则答案为 10)?
此外,我想知道,为什么我不能在子类“FalskTerning”的 if 语句中使用来自超类“Terning”的“answer”。
祝您有美好的一天!
解决方法
父类方法必须返回一些东西来解释,所以重写来这样做。例如:
public class Terning {
public int rollDie() {
return random.nextInt(10) + 1;
}
... other stuff ...
}
现在子类可以调用父方法并返回不同的值。使用您的示例,如果滚动小于 5,则返回 10,您可以执行以下操作。
public class FalskTerning {
@Override
public int rollDie() {
int roll = super.rollDie();
if (roll < 5) {
return 10;
}
return roll;
}
... other stuff ...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。