Logo Passei Direto
Buscar
namespace ComplementarDois_Heranca_Interface
{
abstract class Conta : IConta
{
protected double saldo;
public string Nome { get; set; }
public abstract double SaldoDisponivel { get; }

public Conta(string nome)
{
this.Nome = nome;
}

public virtual void Creditar(double valor)
{
this.saldo += valor;
}

public virtual void Debitar(double valor)
{
if ((SaldoDisponivel - valor) < 0)
throw new Exception("Saldo insuficiente");
}
}
}

Conseguiu verificar na assinatura que trouxemos para a superclasse a
implementação para a interface? Trouxemos para a classe base algumas
responsabilidades. Mas isso é perigoso, pois as subclasses podem precisar
implementar estes métodos para poderem se tornar concretas e, com essa
implementação, isso não se torna obrigatório.

Agora, verifique a assinatura dos métodos. Notou a palavra  virtual ?
Como vimos anteriormente neste capítulo, isso permite que as classes
especializadas sobrescrevam este método, como implementações
específicas. É possível consumir o código da classe base, implementar
alguma especialidade ou ainda ignorar a implementação da superclasse e
implementar um novo comportamento para o método da subclasse.
Qual é a finalidade do modificador 'virtual' nos métodos Creditar e Debitar da classe Conta e como ele influencia a herança e o polimorfismo?
a) Permite que os métodos sejam sobrescritos nas subclasses para implementar comportamentos específicos, possibilitando polimorfismo.
b) Impede que os métodos sejam sobrescritos nas subclasses.
c) Faz com que os métodos sejam estáticos e não possam ser alterados.
d) Faz com que os métodos sejam privados e inacessíveis às subclasses.
User badge image
Desenvolvendo com Questões

anteontem

Respostas

User badge image

Ed Verified user icon

anteontem

O modificador virtual em C# indica que um método pode ser sobrescrito (overridden) em uma subclasse para fornecer uma implementação específica, diferente da implementação da classe base. Analisando as alternativas: a) Permite que os métodos sejam sobrescritos nas subclasses para implementar comportamentos específicos, possibilitando polimorfismo. → Correta. Isso é exatamente o que o modificador virtual faz. b) Impede que os métodos sejam sobrescritos nas subclasses. → Incorreta. O virtual permite justamente o contrário. c) Faz com que os métodos sejam estáticos e não possam ser alterados. → Incorreta. Virtual não tem relação com métodos estáticos. d) Faz com que os métodos sejam privados e inacessíveis às subclasses. → Incorreta. Virtual não altera a visibilidade para privada. Resposta correta: a) Permite que os métodos sejam sobrescritos nas subclasses para implementar comportamentos específicos, possibilitando 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