Logo Passei Direto
Buscar
namespace ComplementarDois_Heranca_Interface
{
class ContaSimples : Conta, IConta
{
public override double SaldoDisponivel => this.saldo;

public ContaSimples(string nome) : base(nome) { }

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

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

Notou, na assinatura da classe, que estendemos  Conta  e implementamos
IConta ? Verificou como a propriedade  SaldoDisponivel  é calculada para
a  ContaSimples ? No construtor, observe a existência de  :base(nome) , o
que garante que o construtor da superclasse seja invocado, com o
argumento recebido. Precisamos desse construtor, pois ele está definido na
superclasse. Mais ainda, você verificou o método  Debitar() , que, em caso
de saldo insuficiente após o débito, dispara uma exceção, não permitindo a
conclusão da operação?
Qual é o propósito do construtor 'ContaSimples(string nome) : base(nome)' e como ele funciona em relação à classe base Conta?
a) Ele cria um novo construtor que ignora o construtor da classe base.
b) Ele chama o construtor da classe base Conta, passando o parâmetro nome para inicializar a propriedade Nome.
c) Ele cria um construtor padrão sem parâmetros.
d) Ele impede que a classe ContaSimples seja instanciada.
User badge image
Desenvolvendo com Questões

há 3 meses

Respostas

User badge image

Ed Verified user icon

há 3 meses

O construtor `ContaSimples(string nome) : base(nome)` serve para garantir que, ao criar um objeto da classe derivada `ContaSimples`, o construtor da classe base `Conta` seja chamado, passando o parâmetro `nome`. Isso é necessário porque a classe base `Conta` possui um construtor que exige esse parâmetro para inicializar suas propriedades (como `Nome`). Analisando as alternativas: a) Incorreta — o construtor não ignora o construtor da classe base, pelo contrário, ele o chama explicitamente. b) Correta — ele chama o construtor da classe base `Conta`, passando o parâmetro `nome` para inicializar a propriedade `Nome`. c) Incorreta — não cria um construtor padrão sem parâmetros, pois recebe um parâmetro `nome`. d) Incorreta — não impede a instanciação da classe `ContaSimples`. Portanto, a resposta correta é: b) Ele chama o construtor da classe base Conta, passando o parâmetro nome para inicializar a propriedade Nome.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

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

Mais perguntas desse material

Mais conteúdos dessa disciplina