Considere o seguinte código em linguagem C#:
class zzz
{
public static void Main ( )
{
bbb b = new ccc ( );
b.a1 ( );
ccc c = new ccc ( );
c.a1 ( );
aaa a = new ccc ( );
a.a1 ( );
aaa aa = new bbb ( );
aa.a1 ( );
}
}
interface aaa
{
Void a1 ( );
}
Class bbb:aaa
{
public void a1 ( )
{
System.Console.WriteLine (“bbb a1”);
}
}
Class ccc:bbb
{
New public void a1 ( )
{
System.Console.WriteLine (“ccc a1”);
}
}
Com base nesse código e nos estudos sobre estruturas e interfaces na linguagem C#, avalie as seguintes afirmativas:
1. A classe bbb é derivada da classe ccc, a qual, por sua vez, é derivada da interface aaa.
2. b.a1( ) chamará a função a1 de bbb, e c.a1() a chamará de ccc.
3. Os objetos a e aa são do tipo aaa, mas são inicializados como objetos do tipo ccc e bbb, respectivamente.
4. A classe derivada não pode alterar os mapeamentos de interface que recebe da classe-base.
5. O mapeamento da função a1 não é para a classe bbb, pois bbb foi derivada da interface.
Assinale a alternativa correta.