Se eu usar virtual na classe pai, sou obrigado a reescrever método na classe filha, ou tenho a de escolher se vou reescrever ou não?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Se eu usar virtual na classe pai, sou obrigado a reescrever método na classe filha, ou tenho a de escolher se vou reescrever ou não?
Exemplo:
class Conta { public int Numero { get; set; } public double Saldo { get; protectedset; } public Cliente Cliente { get; set; }
public virutal void Saca(double valorASerSacado) { this.Saldo -= valorASerSacado;
}
class ContaEspecial : Conta { //sou obrigado a escrever esse metodo ou é opcional? public override void Sacar(double v) { this.Saldo = v+ 100; }
}
Olá Augusto!
Você não é obrigado a sobrescrever o método, pode faze-lo apenas se quiser.
Caso você queira obrigar a sobrescrita, nesse caso marcaria o método como abstrato.