Na programação orientada a objetos utilizam-se conceitos com...

Próximas questões
Com base no mesmo assunto
Q719381 Programação
Na programação orientada a objetos utilizam-se conceitos como classes, objetos e métodos. Na linguagem Java, um método
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a letra B: um método pode receber parâmetros de tipos diferentes. Na programação orientada a objetos, particularmente no Java, os métodos são fundamentais para definir o comportamento das classes e dos objetos criados a partir delas. Um método, nesse contexto, pode realizar diferentes ações, receber diferentes tipos de dados como entrada (parâmetros) e retornar um valor. A capacidade de um método aceitar parâmetros de diversos tipos é conhecida como polimorfismo de sobrecarga (ou method overloading).

Essa característica permite que vários métodos dentro de uma mesma classe tenham o mesmo nome, mas com listas de parâmetros diferentes, sendo diferenciados pela quantidade e/ou tipo dos argumentos fornecidos. Isso facilita o uso da classe, permitindo que métodos logicamente relacionados compartilhem o mesmo nome, mas funcionem com diferentes tipos de dados ou quantidades de parâmetros.

Por exemplo, poderíamos ter um método para somar valores que pode receber dois inteiros:

public int somar(int a, int b) {
    return a + b;
}

E um método com o mesmo nome que soma três inteiros:

public int somar(int a, int b, int c) {
    return a + b + c;
}

Esses métodos são sobrecarregados, pois têm o mesmo nome, mas assinaturas diferentes (ou seja, a quantidade e/ou o tipo de parâmetros são diferentes).

Para entender melhor o conceito, vamos analisar rapidamente as demais alternativas:

  • Alternativa A: é incorreta porque, como explicado, os métodos podem ser sobrecarregados na mesma classe.
  • Alternativa C: é incorreta porque a sobrescrita de métodos (method overriding) ocorre quando uma subclasse redefine um método da superclasse, não na mesma classe.
  • Alternativa D: é incorreta porque nas classes as implementações de métodos não precisam ser abstratas, enquanto que nas interfaces, até antes do Java 8, os métodos eram implicitamente abstratos; atualmente, as interfaces podem ter métodos default e estáticos com implementações concretas.
  • Alternativa E: é incorreta porque os métodos em Java podem tanto receber parâmetros quanto retornar valores, de qualquer tipo, inclusive tipos primitivos, objetos ou até mesmo não retornar nada (void).

Portanto, a compreensão de sobrecarga de métodos e a flexibilidade dos métodos em Java para receber diferentes tipos de parâmetros são essenciais para a seleção da alternativa correta.

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

Método pode receber parâmetros de tipos diferentes.

public int escreverNumero (float num)                 * metódo com parâmetro diferente

Sobrescrita e sobrecarga

O Java permite que você tenha métodos com o mesmo nome, mas com assinaturas diferentes, isto chama-se sobrecarga. O interpretador determinará qual método deve ser invocado pelo tipo de parâmetro passado. Os trecho abaixo é válido para uma compilação Java.

...
public void print( int i ) { ... }
public void print( float f ) { ... }
public void print( String s) { ... }

...

Quando você escreve o código para chamar um desses métodos, a chamada deverá coincidir com tipos de dados da lista de parâmetros de algum dos métodos. Diferente da sobrecarga, a sobrescrita acontece quando um método existe em uma classe pai e é reescrito na classe filha para alterar o comportamento. A assinatura do método deve ser igual na classe pai e na classe filha.

http://lpjava.blogspot.com.br/2007/11/sobrescrita-e-sobrecarga.html

SOBRECARGA permite que utilizemos o mesmo nome em mais de um método contanto que suas listas de argumentos(assinatura) sejam diferentes para que seja feita a separação dos mesmos.

SOBRECARGA(OVERLOAD) – métodos com o mesmo nome DENTRO da mesma classe

 

 

SOBREPOSIÇÃO(OVERRIDE) @@– métodos com o mesmo nome em CLASSES DIFERENTES

SOBREPOSIÇÃO(OVERRIDE) - 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.

Quem não tem acesso:  - -> B

Clique para visualizar este comentário

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