public abstract class AdicionalesCpd extends Cpd{
public abstract int getCpu();
public abstract int getRam();
public abstract int getDisco();
public abstract String getCadena();}
这是我的装饰模式的抽象类,编译时我遇到了这个问题:
**错误:Cpu不是抽象的,并且不会覆盖AdicionalesCpd中的抽象方法getCadena()
公共类Cpu扩展AdicionalesCpd { **我不知道为什么不重写方法“getCpu”
这是我的Cpu类,它是模式中的“装饰”
public class Cpu extends AdicionalesCpd{
Cpd cpd;
int var;
public Cpu(Cpd cpd,int var)
{
this.cpd=cpd;
this.var=var;
}
@Override
public int getCpu() {
return cpd.getCpu()+var;
}
}
答案 0 :(得分:3)
您的抽象基类型定义了四种抽象方法:
public abstract int getCpu();
public abstract int getRam();
public abstract int getDisco();
public abstract String getCadena();
您的具体派生类型实现其中之一:
@Override
public int getCpu() {
return cpd.getCpu()+var;
}
错误告诉您必须实施所有这些错误。否则,当代码在具体类型的实例上调用其中一个方法时会发生什么?