Java 在子类中重用父类的方法,同时使用子类的变量
我必须用Java创建一个程序。这个程序必须在几个游戏中随机选择。所有这些游戏都必须询问一个或多个参数,这些参数总是字符串。当选择一个游戏时,它将分析和测试一个或多个参数,以确定玩家是赢还是输,并显示分数。当前的游戏是回文和字谜检测器 我创建了一个父类Games,在这个类中我有一个.run()方法,其中包含使游戏工作的所有方法 当我创建一个游戏实例(回文或字谜)时,我想知道是否可以在每个实例上使用.run()方法和实例变量Java 在子类中重用父类的方法,同时使用子类的变量,java,Java,我必须用Java创建一个程序。这个程序必须在几个游戏中随机选择。所有这些游戏都必须询问一个或多个参数,这些参数总是字符串。当选择一个游戏时,它将分析和测试一个或多个参数,以确定玩家是赢还是输,并显示分数。当前的游戏是回文和字谜检测器 我创建了一个父类Games,在这个类中我有一个.run()方法,其中包含使游戏工作的所有方法 当我创建一个游戏实例(回文或字谜)时,我想知道是否可以在每个实例上使用.run()方法和实例变量 Palindrome palindrome = new Palindrom
Palindrome palindrome = new Palindrome();
palindrome.run();
这里,.run()不是在回文类中定义的,而是父类游戏的一种方法。当我调用它时,它接受父类的变量。我希望调用的变量是回文类的变量。我找到了解决方案。
这里不需要重写.run()方法,我认为当您尝试使用POO方法时,它不是正确的解决方案
我将.run()方法留在抽象父类中,该方法使用所需的所有方法运行游戏。然后,我用抽象方法修改父类中的方法,并在所有子类中重写它们。
所以,当我创建父类的实例时,run()方法归父类所有。
我认为这是使用多态性的正确方法
例如:
public abstract class Games {
public void run() {
initGame();
}
/*
Several abstract methods
Or not if method is generic, like count unknown parameters for each game
*/
}
public class Game1 extends Games {
// Some variables
int nbParam = 2;
@Override
/*
Override abstract methods in parent class like getDescription(), getNbParam(),
initGame(), setScore(), getScore(), etc...
*/
}
因此,当我创建Game1实例并调用我的方法run时,变量就是Game1变量。
不止一种解决方案,但我认为它是使用多态性的正确方法。在父类中创建一个构造函数,并使用参数设置实例字段的值。您必须在回文和字谜子类中重写run方法。所以我必须重写run方法吗?我不能只对实例变量使用parent.run()方法?