Eu entendi que um método Abstrato é obrigado a ser implementado na classe concreta que herda da classe abstrata pai. Exemplo:
public abstract class Funcionario
{
...
public abstract void AumentarSalario();
public abstract double GetBonificacao();
}
Classes concrecas que herdam de Funcionario() são obrigados implementar AumentarSalario() e GeBonificacao()?
Não entendi porquê na solução abaixo não foi obrigado a implementar o método GetBonificacao() da abstract PrestadorServicos em Arquiteto?
public interface IAutenticavel
{
bool Autenticar(string senha);
}
public interface IBonificavel
{
double GetBonificacao();
}
public abstract class PrestadorDeServicos : IBonificavel
{
public string CNPJ { get; set; }
public double GetBonificacao()
{
return 1000;
}
}
public class Arquiteto : PrestadorDeServicos, IAutenticavel
{
public string Senha { get; set; }
public bool Autenticar(string senha)
{
return Senha == senha;
}
}
Obrigado