如何解决试图应对 Java 中缺少抽象变量的问题
总结一下我的问题: 我想编写一个名为 Player 的抽象类,并使用不同的非抽象“角色”类来扩展它。到现在为止还挺好。我还希望 Player 的每个子类都包含一个显示其个人名称的变量,以及一个返回该名称的方法。有点像这样:
public class Game {
// main and everything else happens here
Player testrole = new TestRole();
System.out.print(testrole.getName());
}
public abstract class Player {
// here I'm trying to accumulate all methods that apply for every Player,regardless of their role
abstract String getName();
}
public class TestRole extends Player {
// every role class extends the basic Player methods by individual,role-specific methods.
private String name = "Test Role";
public String getName() {
return name;
}
}
现在,这一切都很好,但我有 16 个不同的角色,为了保持我的代码“干燥”,我不想通过为每个角色类提供自己的名称变量和 getName() 来重复我自己方法,后者对于每个角色类最终看起来完全相同。
现在显然这行不通:
public abstract class Player {
private String name;
public String getName() {
return this.name;
}
}
... 因为每个子类只有一个名称变量并且没有单独的值,这也不会:
public abstract class Player {
private String name;
public Player(String name) {
this.name = name;
}
}
...因为我在Game中调用TestRole的构造函数,而不是Player的构造函数。
如果有人能帮我解决这个问题,我将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。