Java-来自父级的相同方法,但使用每个子级的单独属性
我对我的代码有疑问:Java-来自父级的相同方法,但使用每个子级的单独属性,java,generics,methods,parameters,attributes,Java,Generics,Methods,Parameters,Attributes,我对我的代码有疑问: public abstract class Jogador { String nome; int pontos; Jogador (String n) { nome = n; } void aumentaPontos () { pontos++; } abstract <U extends Jogador> boolean melhor (U outro); }
public abstract class Jogador {
String nome;
int pontos;
Jogador (String n) {
nome = n;
}
void aumentaPontos () {
pontos++;
}
abstract <U extends Jogador> boolean melhor (U outro);
}
class JogadorAdivinha extends Jogador {
JogadorAdivinha (String n) {
super(n);
}
boolean melhor (JogadorAdivinha outro) {
if (this.pontos > outro.pontos)
return true;
return false;
}
}
class JogadorMemoria extends Jogador {
int rodadasGanhas;
JogadorMemoria(String n) {
super(n);
}
boolean melhor(JogadorMemoria outro) {
if (this.rodadasGanhas > outro.rodadasGanhas)
return true;
return false;
}
void aumentaRodadasGanhas() {
rodadasGanhas++;
}
}
公共抽象类Jogador{
字符串名称;
内蓬托斯;
Jogador(字符串n){
nome=n;
}
虚空幻影(){
pontos++;
}
抽象布尔melhor(U-outro);
}
JogadorAdivinha类扩展Jogador{
JogadorAdivinha(字符串n){
超级(n);
}
布尔梅尔霍(JogadorAdivinha outro){
如果(this.pontos>outro.pontos)
返回true;
返回false;
}
}
Jogadoria类扩展了Jogador{
内罗达斯甘哈斯;
JOGADORIA(字符串n){
超级(n);
}
布尔梅尔霍(Jogadoria outro){
如果(this.roadasganhas>outro.roadasganhas)
返回true;
返回false;
}
void aumentarodadasganahas(){
rodadasGanhas++;
}
}
我在Jogador的两个儿童班都会遇到编译问题。但正如你所看到的,只有Jogadoria有rodadasGanhas。
所以,我想知道一种处理这种情况的方法。。。。如果我将方法melhor()的类Jogador作为参数,我将无法接收子项…
如果要在子类中实现这样的方法,我可以做些什么来覆盖抽象方法,并且不产生异味??:
abstract <U extends Jogador> boolean melhor (U outro);
class JogadorAdivinha extends Jogador<JogadorAdivinha> {
boolean melhor (JogadorAdivinha outro) { return true; }
}
然后您可以在子类中实现这一点:
abstract <U extends Jogador> boolean melhor (U outro);
class JogadorAdivinha extends Jogador<JogadorAdivinha> {
boolean melhor (JogadorAdivinha outro) { return true; }
}
class JogadorAdivinha扩展了Jogador{
布尔melhor(JogadorAdivinha outro){返回真;}
}
这正是我想要的!我还在Java的noob级别。。。我从来没有读过关于泛型的书(我把它放在我的代码里,但我不了解它的功能……我还是不知道哈哈哈)。