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

O código está apresentando problemas de associação das heranças, mas não sei o que estou fazendo de errado

CLASSE PROGRAMA

namespace ByteBankComHeranca_2
{
    class Program
    {
        static void Main(string[] args)
        {
            //CalcularBonificacao();

            UsarSistema();

            Console.ReadLine();
        }


        public static void UsarSistema()
        {
            SistemaInterno sistemaInterno = new SistemaInterno();

            Diretor roberta = new Diretor("159.753.398-04");
            roberta.Nome = "Roberta";
            roberta.Senha = "123";


            sistemaInterno.Logar(roberta, "123");
            sistemaInterno.Logar(roberta, "abc");

        }

        public static void CalcularBonificacao()
        {
            GerenciadorBonificacao gerenciadorBonificacao = new GerenciadorBonificacao();

            Funcionario pedro = new Designer("833.222.048-39");
            pedro.Nome = "Pedro";

            Diretor roberta = new Diretor("159.753.398-04");
            roberta.Nome = "Roberta";

            Funcionario igor = new Auxiliar("981.198.778-53");
            igor.Nome = "Igor";

            GerenteDeConta camila = new GerenteDeConta("326.985.628-89");
            camila.Nome = "Camila";

            Desenvolvedor guilherme = new Desenvolvedor("456.175.468-20");
            guilherme.Nome = "Guilherme";

            gerenciadorBonificacao.Registrar(guilherme);
            gerenciadorBonificacao.Registrar(pedro);
            gerenciadorBonificacao.Registrar(roberta);
            gerenciadorBonificacao.Registrar(igor);
            gerenciadorBonificacao.Registrar(camila);

            Console.WriteLine("Total de bonificações do mês " +
                gerenciadorBonificacao.GetTotalBonificacao());
        }
    }
}

CLASSE SISTEMA INTERNO

namespace ByteBankComHerenca_2.Sistemas
{
    public class SistemaInterno
    {
        public bool Logar(Auntenticavel funcionario, string senha)
        {
            bool usuarioAutenticado = funcionario.Autenticar(senha);

            if (usuarioAutenticado)
            {
                Console.WriteLine("Bem vindo ao sistema!");
                return true;
            }
            else
            {
                Console.WriteLine("Senha incorreta");
                return false;
            }
        }
    }
}

CLASSE DIRETORES

namespace ByteBankComHeranca_2
{
    public class Diretor : Autenticavel
    {
        public string Senha { get; set; }

        public Diretor(string cpf) : base (5000, cpf)
    {
            Console.WriteLine("Criando DIRETOR");
    }

        public override void AumentarSalario()
        {
            Salario *= 1.15;
        }
        public override double GetBonificacao()
    {
    return Salario + base.GetBonificacao();
    }
}
}

CLASSE FUNCIONARIO

namespace ByteBankComHeranca_2
{
 public abstract class Funcionario
    {
        public static int TotalFuncionarios { get; set; }
        public string Nome { get; set; }
        public string CPF { get; private set; }
        public double Salario { get; protected set; }

        public Funcionario(double salario, string cpf)
        {
            Salario = salario;
            CPF = cpf;
            Console.WriteLine("Criando FUNCIONARIO");
            TotalFuncionarios++;
        }

        public abstract void AumentarSalario();

        public abstract double GetBonificacao();
    }
}

CLASSE AUTENTICAVEL

namespace ByteBankComHerenca.Sistemas
{
    public abstract class Auntenticavel : Funcionario
    {
        public string Senha { get; set; }


        public Auntenticavel(double salario, string cpf) :base (salario,cpf)
        {

        }

        public bool Autenticar(string senha)
        {
            return Senha == senha;
        }
    }
}
5 respostas

Olá Lucas, tudo certo?

Acredito que o problema esteja na nomenclara com uma letra a mais no nome da sua classe Autenticavel.

Veja:

public abstract class Auntenticavel

Faça o ajuste e me diga se resolveu. Aguardo seu retorno

Olá, Ana! Muito obrigado pela sua resposta e ajuda! Realmente tava com esse problema de ortografia, porém, não foi resolvido mesmo alterando os nomes das classes. O compilador segue sem reconhecer a associação de heranças e a relação de Diretor, que é um Atenticavel, que é um Funcionario.

Olá Lucas,

Tentei trazer todas as suas classes para o meu programa, por aqui funcionou normalmente.

Você conseguiria subir o projeto completo no GitHub e disponibilizar o link aqui?

Aguardo seu retorno.

Boa noite, Ana!

Peço perdão pelo incômodo. Eu copiei e colei todas minhas classes para um novo projeto e também foi aqui. Não sei se foi um problema de namespace ou algo do tipo, mas pelo menos não era um problema de código que não estava conseguindo rastrear. Muito obrigado pela ajuda!

solução!

Olá Lucas,

O importante é que conseguiu resolver. Fico feliz que irá seguir com os estudos tranquilamente.

Não precisa se desculpar, estamos aqui para ajudar.

Um forte abraço e bons estudos!