Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 3 - Códigos parecidos e o Template Method

No exercicio de criar a classe:


class IHIT extends ImpostoCondicional {

    public boolean deveUsarMaximaTaxacao(Orcamento orcamento) {
      List<String> noOrcamento = new ArrayList<String>();

      for(Item item : orcamento.getItens()) {
        if(noOrcamento.contains(item.getNome())) return true;
        else noOrcamento.add(item.getNome());
      }

      return false;
    }
    protected abstract double maiorTaxacao(Orcamento orcamento) { 
      return orcamento.getValor() * 0.13 + 100;
    }
    protected abstract double menorTaxacao(Orcamento orcamento) {
      return orcamento.getValor() * (0.01 * orcamento.getItens().size());
    }
  }

houve mensagem de erro, da IDE, sobre os métodos maiorTaxacao e menorTaxacao. "Abstract methods do not specify a body"

Tá certo usar o abstract nesses métodos mesmo? está assim na correção do exercício. Retirei o modificador e resolveu o problema.

2 respostas
solução!

Oi Ewertom , tudo bem? Caso a implementação tenha corpo, você não pode usar abstract, você usaria somente no caso de que estes metodos fossem para ser implementados quando herdados.

Obs: Caso encontre algum erro nos exercícios ou algo que ficou confuso de entender, você pode usar o link de sugestão de correção e nos enviar as modificações para que o exercício possa ficar mais coerente ou a explicação mais fácil de entender.

Eu ia colocar a correção, mas fiquei com receio. ahhaa obrigado pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software