Olá, boa tarde! Tudo bem?
Estou com uma dúvida no atributo senha. Ele foi removido da classe funcionário. Como então poderá ser acesso e setado um valor? Não consigo acessar e modificar algo que não existe.
namespace ByteBank.Funcionarios
{
public abstract class Funcionario
{
public string Nome { get; private set; }
public string CPF { get; private set; }
public double Salario { get; protected set; }
protected Funcionario(string nome, string cpf, double salario)
{
Nome = nome;
CPF = cpf;
Salario = salario;
}
public abstract double GetBonificacao();
public abstract void AumentarSalario();
}
}
using ByteBank.Sistemas;
namespace ByteBank.Funcionarios
{
public class Diretor : Autenticavel
{
public Diretor(string nome, string cpf, double salario) : base(nome, cpf, salario)
{
}
public override double GetBonificacao()
{
return Salario * 0.5;
}
public override void AumentarSalario()
{
Salario *= 1.2;
}
}
}
using System;
using ByteBank.Funcionarios;
namespace ByteBank.Sistemas
{
public class SistemaInterno
{
public bool Logar(Autenticavel funcionario, string senha)
{
bool usuarioAutenticado = funcionario.Autenticar(senha);
if (usuarioAutenticado)
{
Console.WriteLine("Bem-vindo ao sistema!");
}
else
{
Console.WriteLine("Senha incorreta!");
}
return false;
}
}
}
using ByteBank.Funcionarios;
namespace ByteBank.Sistemas
{
public abstract class Autenticavel : Funcionario
{
public string Senha { get; set; }
public bool Autenticar(string senha)
{
return Senha == senha;
}
protected Autenticavel(string nome, string cpf, double salario) : base(nome, cpf, salario)
{
}
}
}