Logo Passei Direto
Buscar
namespace ComplementarDois_Heranca_Interface
{
class ContaSimples : Conta
{
public override double SaldoDisponivel => this.saldo;
public ContaSimples(string nome) : base(nome) { }

public override void Debitar(double valor)
{
base.Debitar(valor);
this.saldo -= valor;
}
}
}

Notou que, embora tenhamos definidos que os dois métodos da superclasse,
relacionados à interface, poderiam ser sobrescritos, só estamos
sobrescrevendo um deles, o  Debitar() ? E ainda, notou que estamos
invocando a implementação definida na classe  base ? Essa pode ser uma
boa solução para reutilização de código e termos o polimorfismo também
implementado. Veja que utilizamos a palavra  override  na assinatura do
método. Se não utilizarmos essa palavra, o método será visto como um
novo método, exclusivo da classe, o que gerará uma mensagem de alerta do
compilador.
Por que a classe ContaSimples utiliza 'override' no método Debitar e chama 'base.Debitar(valor)' dentro dele? Qual é o benefício dessa abordagem?
a) Para ignorar completamente a implementação da classe base e criar um método novo e independente.
b) Para reutilizar a lógica de verificação de saldo da classe base e depois aplicar a subtração específica do saldo na subclasse, promovendo reutilização e polimorfismo.
c) Para impedir que o método Debitar seja chamado na classe base.
d) Para tornar o método Debitar estático.
User badge image
Desenvolvendo com Questões

há 6 dias

Respostas

User badge image

Ed Verified user icon

há 6 dias

Vamos analisar as alternativas com base no código e na explicação: - A palavra-chave override indica que o método está sobrescrevendo a implementação da classe base, ou seja, está modificando ou estendendo o comportamento original. - A chamada base.Debitar(valor) dentro do método sobrescrito indica que a implementação da classe base está sendo reutilizada antes de adicionar comportamento específico na subclasse. - Isso promove reutilização de código e mantém o polimorfismo, pois o método pode ser chamado via referência da classe base, mas executa a versão sobrescrita. Analisando as alternativas: a) Incorreta. O método não ignora a implementação da classe base, ele a utiliza. b) Correta. Reutiliza a lógica da classe base e adiciona comportamento específico na subclasse, promovendo reutilização e polimorfismo. c) Incorreta. Não impede a chamada do método na classe base, pelo contrário, chama explicitamente. d) Incorreta. O método não é estático. Resposta correta: b) Para reutilizar a lógica de verificação de saldo da classe base e depois aplicar a subtração específica do saldo na subclasse, promovendo reutilização e polimorfismo.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais perguntas desse material

Mais conteúdos dessa disciplina