Com base na linguagem C# e nos conceitos de sobrecarga de função e herança, considere o seguinte código:

Avalie as seguintes afirmativas:
1. A classe yyy tem três funções, todas elas com o mesmo nome. A distinção entre elas está nos tipos de dados dos parâmetros.
2. No código, está claro o uso de sobrecarga de função quando chamamos a função pelo mesmo nome, mas passando parâmetros diferentes.
3. No código, está claro o uso de herança, pois há a chamada de função pelo mesmo nome e com passagem de parâmetros diferentes.
4. O motivo pelo qual a sobrecarga de função funciona na linguagem C# é que ela não conhece uma função pelo nome, mas por sua assinatura.
5. Em C#, assinatura é o nome da função original, mais o número e os tipos de dados de seus parâmetros individuais.
Assinale a alternativa correta.