Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

erro no Template Method

Bom dia no video que explica o Template Method foi implementada a classe abstrata TemplateDeImpostoCondicional, quando eu vou herdar esta classe e implementar seu metodos de acordo com o video o C# reclama e sugere que os metodos tem que ser override, está correto isso?

  public abstract class TemplateDeImpostoCondicional : Imposto
    {
        public double Calcula(Orcamento orcamento)
        {
            if (DeveUsarMaximaTaxacao(orcamento))
            {
                return MaximaTaxacao(orcamento);
            }
            else
            {
                return MinimaTaxacao(orcamento);
            }
        }

        public abstract bool DeveUsarMaximaTaxacao(Orcamento orcamento);
        public abstract double MaximaTaxacao(Orcamento orcamento);
        public abstract double MinimaTaxacao(Orcamento orcamento);
    }
public class IKCV : TemplateDeImpostoCondicional
    {
        public  bool DeveUsarMaximaTaxacao(Orcamento orcamento)
        {
            return orcamento.Valor > 500 && TemItemMaiorQue100ReaisNo(orcamento);
        }
        public  double MaximaTaxacao(Orcamento orcamento)
        {
            return orcamento.Valor * 0.10;
        }
        public  double MinimaTaxacao(Orcamento orcamento)
        {
            return orcamento.Valor * 0.06;
        }
        private bool TemItemMaiorQue100ReaisNo(Orcamento orcamento)
        {
            // retorna verdadeiro caso algum item seja maior que 100 reais
            if ( orcamento.Valor> 100)
            {
                return true;
            }
            return false;
        }
    }
1 resposta
solução!

Olá Gilberto,

Sim, você tem que colocar override nos métodos quando for dar implementação para eles nas classes filhas.