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

Dúvida sobre Polimorfismo/Herança

Pessoal, vendo a aula de Exceções eu fiquei com a seguinte dúvida, Eu tenho uma classe chamada Conta e um método Saca

public abstract void Saca(double valor);

depois eu tenho uma classe filha chamada ContaCorrente, que faz a implementação do método Saca

public override void Saca(double valor)
        {
          //código
        }

Na aula são criados alguns exceptions na minha classe filha

        public override void Saca(double valor)
        {
            if (valor > this.Saldo )
            {
                throw new SaldoInsuficienteException("Valor do saque maior que o saldo");
            } else if(valor < 0) {
                throw new ArgumentException();
            }
            else
            {

                this.Saldo -= (valor + 0.1);
            }
        }

No C#, existe alguma maneira de implementar esses exceptions na minha classe "Mae", e deixar na minha filha apenas a linha

  this.Saldo -= (valor + 0.1);

Entretanto, quando eu executasse o método saca, ele iria na minha classe "Mae" verificava o código, e depois executava o código da classe "Filha". ?

Pergunto isso pois também tenho uma classe ContaDeposito e nela eu teria o método Saca, logo deveria que repetir o código dos exceptions.

Não sei se fui bem claro, mas enfim, isso é possível, é loucura minha ?

4 respostas

Vc chamar o super.metodoDaMae.. só que aí vc vai executar o código que tá na mãe e depois o que tá na folha.

E essa é a melhor maneira para se fazer? Ou o ideal é criar uma classe , que tem um método que faz a verificação e só vou chamando nas filhas? Embora eu fico com medo de esquecer de chamar o método...

solução!

Aí depende da sua regra... se a sua filha realmente quer se aproveitar da lógica da mãe e adicionar algo, acho que essa é uma boa possibilidade sim.

Entendi, aí na minha filha eu só faço a chamada do método da "mãe"né Eu não lembro, mas, seria mais ou menos assim ?

base.saca();