Acerca de programação orientada a objetos, Java e PHP, julgu...

Próximas questões
Com base no mesmo assunto
Q893416 Programação

Acerca de programação orientada a objetos, Java e PHP, julgue o item a seguir.


Por meio do mecanismo de sobrecarga, dois métodos de uma mesma classe podem ter o mesmo nome, desde que suas listas de parâmetros sejam diferentes.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C - certo

Na Programação Orientada a Objetos (POO), um dos conceitos fundamentais é o da sobrecarga de métodos, também conhecida pelo termo em inglês method overloading. Este conceito permite que uma classe tenha múltiplos métodos com o mesmo nome, mas com listas de parâmetros diferentes. Isso significa que, dentro de uma mesma classe, é possível ter vários métodos que realizam funções similares, mas que são distintos no tipo ou na quantidade de argumentos que recebem.

Essa característica é útil para criar uma interface consistente em uma classe, onde operações relacionadas podem ser expressas com o mesmo nome, facilitando o entendimento e uso da classe. Por exemplo, em uma classe de Calculadora, poderíamos ter um método soma() que soma dois inteiros e um outro método soma() que soma dois números de ponto flutuante. A decisão sobre qual método soma() chamar é feita em tempo de compilação com base nos tipos de argumentos fornecidos na chamada do método.

As linguagens de programação Java e PHP suportam sobrecarga de métodos, embora a implementação e as regras específicas possam variar entre elas. Na questão em questão, a afirmação está correta, pois reflete com precisão o conceito de sobrecarga de métodos como praticado na POO.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Marquei certo

O que é sobrecarga?

Um outro método, com o mesmo nome e parâmetros de entrada (assinatura) diferentes, existe na classe.

Existem dois tipos de polimorfismo que são conhecidos como sobrecarga (overload) e sobreposição (override).

*

A sobrecarga de métodos (overload) é um conceito do polimorfismo que consiste basicamente em criar variações de um mesmo método, ou seja, a criação de dois ou mais métodos com nomes totalmente iguais em uma classe. A Sobrecarga permite que utilizemos o mesmo nome em mais de um método contanto que suas listas de argumentos sejam diferentes para que seja feita a separação dos mesmos.

*

A Sobreposição de métodos (override) é um conceito do polimorfismo que nos permite reescrever um método, ou seja, podemos reescrever nas classes filhas métodos criados inicialmente na classe pai, os métodos que serão sobrepostos, diferentemente dos sobrecarregados, devem possuir o mesmo nome, tipo de retorno e quantidade de parâmetros do método inicial, porém o mesmo será implementado com especificações da classe atual, podendo adicionar um algo a mais ou não.

*

Diferente da sobrecarga, a sobreposição funciona por meio do sistema de herança, e para a mesma funcionar o nome e lista de argumentos dos métodos devem ser totalmente iguais aos da classe herdada.

*

A sobrecarga está ligada a variância de estados de um método, podemos entende-la como um conjunto de opções que o programa principal tem para escolher quando recebe os parâmetros passados pelo usuário. Se tivéssemos apenas um método e não utilizarmos a sobrecarga nele, ao passarmos um parâmetro que não consta nesse método, ocorreriam erros no programa. Já com a sobrecarga conseguimos criar variações de um mesmo método conseguindo assim mais opções de uso para ele, então, para a mesma funcionar os métodos devem conter nomes iguais e listas de argumentos diferentes.

**

Enquanto a sobrecarga da vida a variação de métodos, a sobreposição possibilita a extensibilidade dos mesmos, pois com ela podemos reescrever métodos criados anteriormente, permitindo assim a criação de versões mais específicas deles. Com a sobreposição podemos pegar um método genérico e transformá-lo em específico, implementando novas funcionalidades pertinentes da classe à qual ele está. Diferente da sobrecarga, a sobreposição funciona por meio do sistema de herança, e para a mesma funcionar o nome e lista de argumentos dos métodos devem ser totalmente iguais aos da classe herdada.

*

Fonte: https://www.devmedia.com.br/sobrecarga-e-sobreposicao-de-metodos-em-orientacao-a-objetos/33066

Resumindo:

 

Polimorfismo Estático ==> sobrecarga (overload)
- A mesma operação implementada várias vezes na mesma classe.
- A escolha depende da assinatura dos métodos sobrecarregados.

 

Polimorfismo Dinâmico ==> sobreposição/sobrescrita (override)
- Acontece na herança, quando a subclasse sobrepõe o método original.
- Método é escolhido em tempo de execução, não em tempo de compilação.
- A escolha depende do tipo de objeto que recebe a mensagem.

Sobrecarregar de métodos significa ter vários métodos com nomes iguais mais assinaturas diferentes. A sobrescrita de métodos seria criar um novo método na classe filha contendo a mesma assinatura e mesmo tipo de retorno do método sobrescrito.

Sobrecarga = nome dos métodos iguais, parâmetros diferentes (estático)

Sobrescrita = nome dos métodos e parâmetros iguais (dinâmico)

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo