Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
4
respostas

Classe abstrata public quando tem propriedade do tipo Cliente da erro

Por que da erro na propriedade do tipo Cliente quando marca a classe abstrata é publica?

namespace TreinamentoCSharp
{
    public abstract class Conta
    {
        //propriedades
        **public Cliente Titular { get; set; }**
        public int Numero{get;set;}
        public int Agencia{get;set;}
        public Double Saldo { get; protected set; }

        //métodos
        public abstract void Saca(Double valor);


        public void Deposita(Double valor) 
        {
            if (valor >= 0)
            {
                this.Saldo += valor;
            }
        }

        public void Transferencia(Double valor, Conta destino)
        {
            this.Saca(valor);
            destino.Deposita(valor);
        }

    }
}
4 respostas

Testei o código postado e não deu erro aqui... onde exatamente dá erro?

Se a classe abstrata Conta estiver como publica, no momento em que crio um método que passe como parâmetro um objeto do tipo Conta da erro na propriedade do tipo Cliente Titula da classe Conta abstrata, o erro no Visual Studio é inconsistente acesso a propriedade tipo Cliente

  public void AdicionaConta(Conta conta)
        {
            this.Contas[this.quantidadeDeContas] = conta;
            this.quantidadeDeContas++;
            this.comboBoxContas.Items.Add(conta.Titular.nome);

}


namespace TreinamentoCSharp
{
    public abstract class Conta
    {
        //propriedades
        **public Cliente Titular { get; set; }**
        public int Numero{get;set;}
        public int Agencia{get;set;}
        public Double Saldo { get; protected set; }

        //métodos
        public abstract void Saca(Double valor);


        public void Deposita(Double valor) 
        {
            if (valor >= 0)
            {
                this.Saldo += valor;
            }
        }

        public void Transferencia(Double valor, Conta destino)
        {
            this.Saca(valor);
            destino.Deposita(valor);
        }

    }
}

Pelo que descreveu, o problema pode estar na visibilidade da classe Cliente.

solução!

Oi Rogério

Esse problema é explicado na resposta desse exercício: http://www.alura.com.br/course/FN-14/section/1/exercise/8