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