1
resposta

reaproveitamento de código com herança

class Conta
{
    public double Saldo { get; private set; }
    public void Deposita (double valor)
    {
        this.Saldo += valor;
    }
}
class ContaPoupanca : Conta { }
ContaPoupanca cp = new ContaPoupanca();
cp.Deposita(200.0);

Professora(a), errei esta pergunta por ter respondido que não compila, pois o atributo "Saldo" na classe Pai está definido com a propriedade "private". Teria, pelo que aprendi antes, que ser modificado para "protected".

No entanto, a resposta correta da questão foi que compila. Será porque na classe filha ContaPoupanca não foi sobrescrito o método "Deposita" da classe Pai, e então o compilador usou o método da classe Pai ?

1 resposta

Fala ai Rogerio, tudo bem ?

Tudo que você disse está correto, como a classe ContaPoupanca é uma Conta, ela possui todos as caracteristicas - atributos, métodos e construtores- que uma conta deve ter.

Portanto quando você chama o método Deposita, ele funciona e compila.

Espero ter ajudado.

Abraços