Imagem de fundo

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

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 é:


A

public override void M2()

{ . . . . .

}


B

class C2 : C1

{ public override void M2()

{ . . . . .

}}


C

class C1 : C2

{ public override void M1()

{ . . . . .

}}


D

class C2 : C1

{ public override void M1()

{ . . . .

}}


E

class C1 : C2

{ public override void M2()

{ . . . . .

}}