Alternativa C - Sobrecarga
O código apresentado demonstra uma característica fundamental da Programação Orientada a Objetos (POO) em Java conhecida como Sobrecarga de Métodos (Method Overloading).
Isso ocorre quando definimos múltiplos métodos com o mesmo nome, mas com assinaturas diferentes (diferentes quantidades ou tipos de parâmetros). O compilador decide qual método executar com base nos argumentos fornecidos na chamada.
Análise das Alternativas
Para entender por que esta é a resposta correta, vamos analisar cada conceito:
- Sobrecarga (Correta):
- O método
estudar() não recebe parâmetros. - O método
estudar(String disciplina) recebe um parâmetro do tipo String. - Ambos têm o mesmo nome, permitindo uso flexível da mesma funcionalidade básica.
- Reescrita (Incorreta):
- Também chamada de Override ou Sobreposição.
- Ocorre quando uma classe filha redefine um método da classe pai.
- Requer herança e a assinatura do método deve ser idêntica à da classe pai.
- Método Final (Incorreto):
- Envolve a palavra-chave
final antes do tipo de retorno (ex: public final void). - Impede que o método seja sobrescrito em subclasses.
- Encapsulamento (Incorreto):
- Refere-se ao ocultamento de dados internos usando modificadores de acesso (como
private) e exposição via métodos públicos (getters/setters). - Embora o código use
public, o foco da questão é a duplicidade de nomes, não o controle de acesso. - Atributo Public (Incorreto):
- Atributos são variáveis que armazenam estado (ex:
int idade;). - O código mostra apenas métodos (funções), indicados pela palavra-chave
void e chaves {}.
Conclusão
A definição de dois métodos chamados estudar com assinaturas distintas é o exemplo clássico de sobrecarga, permitindo que o programa identifique automaticamente qual lógica executar dependendo dos dados passados.