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

Dúvida sobre herança, construtores e associações

Olá, bom dia! Tudo bem?

Tenho uma classe pai abstrata chamada Pessoa com várias propriedades e tenho uma classe Cliente que deriva dela, porém, na classe Cliente tenho algumas propriedades exclusivas de um cliente e não de uma pessoa.

Como devo tratar os construtores nas classes derivadas desta classe pai Pessoa? Serão sempre dois construtores, uma para a classe pai e outro para tratar os atributos da classe filha?

Eu quero instanciar o objeto Cliente e preciso que ele preencha tanto as propriedades da classe Pai, quanto as suas próprias propriedades, como proceder, fazendo um favor?

Quando utilizar associação? Qual o benefício?

3 respostas

Boa tarde Thiago! Quando você tiver uma classe derivada de outra classe que tem um construtor, você terá que fazer o construtor na classe filha.

Para fazer isso é simples, segue um exemplo:

    public class ClassePai
    {
        public string Nome { get; set; }
        public int Idade { get; set; }

        public ClassePai(string nome, int idade)
        {
            Nome = nome;
            Idade = idade;
        }
    }

    public class ClasseFilha : ClassePai
    {
        public double Saldo { get; set; }

        public ClasseFilha(string nome, int idade, double saldo) : base(nome, idade)
        {
            Saldo = saldo;
        }
    }
}

Criando uma ClasseFilha derivando da ClassePai:

class Program
    {
        static void Main(string[] args)
        {
            ClasseFilha pessoa = new ClasseFilha("Carlos", 25, 1000);

            Console.WriteLine("Nome: " + pessoa.Nome + ", Idade : " + pessoa.Idade + ", Saldo: " + pessoa.Saldo);

            Console.ReadKey();
        }
    }

Na hora da criação da ClasseFilha você vai passar tanto os argumentos que precisa para ClasseFilha quanto para ClassePai.

Muito obrigado, realmente é muito simples!!!!

solução!

Thiago, se puder marcar o tópico como "Tópico Solucionado", vai ajudar quem estiver com o mesmo problema a encontrar a solução, e também me ajuda xD