Questão nº 36
Questão de Tecnologia da Informação · FCC TRT-1 2025 (nº 36)
O trecho de código C# a seguir mostra uma classe derivada de um sistema de cálculo de rescisão trabalhista. O código recebe o salário base e o tempo de serviço (em meses) do trabalhador para calcular a indenização proporcional.
```csharp
I {
public static double CalcularRescisao(double salarioBase, int mesesTrabalhados)
{
double indenizacao = salarioBase * mesesTrabalhados / 12;
return II;
}
}
```
Considerando o conceito de herança em C# e que o código será executado em condições ideais, as lacunas I e II são, correta e respectivamente, preenchidas com
- A```csharp
public class CalculoRescisao : Object
indenizacao
``` (alternativa correta) - B```csharp
override class Rescisao : Object
this.indenizacao
``` - C```csharp
class CalculoRescisaoSalario extends Object
indenizacao*salarioBase
``` - D```csharp
public class Rescisao : BaseClass
this.mesesTrabalhados*indenizacao
``` - E```csharp
class BaseRescisao inherit Object
indenizacao
```
Resposta comentada
Gabarito Alternativa A
Herança em C# é um recurso que permite a uma classe (chamada classe derivada) reutilizar e estender o comportamento de outra classe (chamada classe base). É como dizer que um "Carro é um tipo de Veículo", onde `Carro` herda de `Veículo`. Em C#, todas as classes, por padrão, herdam implicitamente da classe `Object`, que é a classe mais fundamental de todas.
(A) Correta: A lacuna I `public class CalculoRescisao : Object` define uma classe pública chamada `CalculoRescisao` que herda explicitamente da classe `Object`, o que é a sintaxe correta em C#. A lacuna II `indenizacao` retorna a variável `indenizacao` que foi calculada e é do tipo `double`, correspondendo ao tipo de retorno do método.
(B) Incorreta: A palavra-chave `override` é usada para métodos ou propriedades que sobrescrevem um membro da classe base, não para a declaração de uma classe. Além disso, `this.indenizacao` está incorreto porque `indenizacao` é uma variável local dentro de um método `static`, e `this` não pode ser usado em métodos estáticos.
(C) Incorreta: `extends` é a sintaxe utilizada para herança na linguagem Java, não em C#. Em C#, usa-se `:`. A expressão `indenizacaosalarioBase` também está incorreta, pois o método deve retornar apenas o valor da `indenizacao` calculada.
(D) Incorreta: `this.mesesTrabalhadosindenizacao` está incorreto. `this` não pode ser usado em métodos `static`. `mesesTrabalhados` é um parâmetro do método, não um membro da classe acessível via `this`. A expressão de retorno não corresponde ao valor calculado.
(E) Incorreta: `inherit` é a sintaxe utilizada para herança na linguagem Visual Basic .NET, não em C#. Em C#, usa-se `:`.
Fonte: FCC TRT-1 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 004). Reproduzida para fins de estudo.