No contexto da linguagem C#, considere o código a seguir. na...

Próximas questões
Com base no mesmo assunto
Q1933757 Programação
No contexto da linguagem C#, considere o código a seguir.

namespace NS
{ abstract class C1
    { public abstract void M1();
      public void M2()
      {          . . . .                }}
 ----------------
 class P
 { static void Main(string[] args)
     {
        C2 x = new C2();
         x.M1();
         x.M2();
 }}}

A estrutura de código que substitui corretamente o tracejado é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: D

Esta questão aborda o conceito de herança e métodos abstratos na linguagem de programação C#. No código fornecido, C1 é uma classe abstrata com um método abstrato denominado M1() e um método concreto denominado M2(). A classe abstrata serve como um modelo para outras classes que derivam dela. Para uma classe ser considerada concreta e instanciável, ela deve implementar todos os métodos abstratos definidos na classe abstrata mãe.

A alternativa correta, a alternativa D, demonstra corretamente a implementação de uma classe derivada, nomeada C2, que herda da classe abstrata C1. A classe C2 fornece uma implementação concreta para o método abstrato M1(), conforme exigido pela definição de uma classe abstrata que contém métodos abstratos. Não é necessário nem possível usar override no método M2(), pois ele não é abstrato na classe base C1.

Segue a estrutura de código que substitui corretamente o tracejado:

<div style="color: blue; font-weight: bold;">class C2 : C1
{
    public override void M1()
    {
        // Implementação do método M1
    }
}</div>

Portanto, a alternativa D está correta porque segue as regras de herança em C# e fornece a implementação obrigatória do método abstrato M1() da classe base abstrata C1, transformando C2 em uma classe concreta que pode ser instanciada e utilizada no método Main.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

não pesquisei sobre o assunto e não sei nada de C# kkk.

Mas pela intuição e se você souber um pouco de Java , da para responder.

A questão trata sobre herança

No Java , para herdar uma classe , a gente usa

class X extends class Y

ou seja

classe X herda da classe Y

A classe herdada vem antes da classe mãe, assim como na questão

C1:C2

essa eu chutei e foi gol kkk

trata de heranca, como o metodo m2 ja esta implementado, o abstract obriga implementar m1.

A classe C2 herda de C1 então ela precisa sobrescrever o método M1 que é abstrato.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo