“不是抽象的,并且不使用装饰器模式覆盖抽象方法java”

时间:2015-06-12 18:00:34

标签: java design-patterns override decorator

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;

}

}

1 个答案:

答案 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;
}

错误告诉您必须实施所有这些错误。否则,当代码在具体类型的实例上调用其中一个方法时会发生什么?