O código do exercício não funciona, e não consegui consertar. Ele informa o seguinte erro:
Error CS0273 The accessibility modifier of the 'Form1.Conta.Saldo.set' accessor must be more restrictive than the property or indexer 'Form1.Conta.Saldo'
O código abaixo é o do exercício já adaptado com a resposta certa da questão:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Conta
{
// outros atributos e métodos da Conta
private double Saldo { get; protected set; }
public virtual void Atualiza(double taxa)
{
this.Saldo += this.Saldo * taxa;
}
}
class ContaPoupanca : Conta
{
public override void Atualiza(double taxa)
{
base.Atualiza(3 * taxa);
}
}
class ContaCorrente : Conta
{
public override void Atualiza(double taxa)
{
base.Atualiza(2 * taxa);
}
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
Tentei alterar o atributo Saldo para protected e continua sem funcionar. Se coloco public ele funciona, mas perde o encapsulamento, né?
O que houve aqui e o que faço?