Vídeo: Curso de C++ #67 - POO, Herança, Virtual, Override - P9 2024
Como intelectualmente satisfatório como factoring está em C ++, ele apresenta um problema próprio. Em um exemplo sobre as classes de contas bancárias, especificamente a classe comum Conta. Pense por um minuto sobre como você pode definir definições das diferentes funções dos membros definidas em Conta.
A maioria das funções do membro Conta não são problema porque ambos os tipos de contas os implementam da mesma maneira. A implementação dessas funções comuns com Conta :: retirada () é diferente, no entanto.
As regras para a retirada de uma conta de poupança são diferentes das que são retiradas de uma conta corrente. Você terá que implementar Poupanças:: retirada () diferente do que você verificando:: retirada () . Mas como você deve implementar a Conta:: retirada ()?
Vamos pedir ajuda ao gerente do banco. A conversa poderia ser algo como o seguinte:
"Quais são as regras para fazer uma retirada de uma conta? " você pergunta.
"Que tipo de conta? Poupança ou verificação? "Vem a resposta.
"De uma conta", você diz. "Apenas uma conta. "
Olhar em branco.
O problema é que a questão não faz sentido. Não existe tal coisa como "apenas uma conta. "Todas as contas (neste exemplo) são contas correntes ou contas de poupança. O conceito de uma conta é um resumo que caracteriza as propriedades comuns às duas classes concretas.
Está incompleto porque não possui a retirada de propriedade crítica () . (Depois de chegar mais longe nos detalhes, você pode encontrar outras propriedades que falta uma conta simples.)
Uma classe abstrata é uma que existe apenas em subclasses. A classe de concreto é uma classe que não é abstrata.