Dúvida sobre notação java

Galera, eu sei que é possível criar métodos de mesmo nome recebendo parâmetros diferentes, mas é possível criar métodos de mesmo nome que retornem parâmetros diferentes?

Exemplo:

public int x{

}

public String x{

}

Sim, desde que a lista de parâmetros seja diferente.

Q retornem atributos diferentes, vc quis dizer?

Como o @rmendes08 disse, sim, desde que os parâmetros sejam distintos.
Veja os exemplos:

public String processar() {
    return "Este método não funciona";
} 

public int processar() {
    System.out.println("Este método não funciona";
    return 0;
}

Agora, me diga, se você tiver a chamada:

String msg = processar();

Qual dos métodos deveria ser chamado?
É a mesma questão que o compilador enfrenta, caso você tenha dois ou mais métodos de mesmo nome, mas com assinaturas iguais. O java vai ler a parte após a igualdade e, tentar fazer o seu serviço (invocar um método). Como ele não saberia qual método, você teria um erro de execução.
É por isso que você precisa diferenciar os métodos de mesmo nome de alguma maneira. Como? Com o número e tipo de parâmetros que os métodos recebem.

public String processar(String nome) {
    return nome + ", este método não funciona";
} 

public int processar() {
    System.out.println("Este método não funciona";
    return 0;
}

Agora é fácil para todo mundo entender isso, inclusive, o compilador.
Ficou mais claro?

Ele quis dizer que retornem tipos de dados diferentes.

O compilador Java só permite a sobrecarga de métodos utilizando tipos de parâmetros ou quantidades de parâmetros diferentes.

Entretanto a máquina virtual Java permite que um bytecode possua sobrecarga de métodos com os mesmos parâmetros, só modificando o tipo de dado retornado.

Alguns ofuscadores possuem uma opção para habilitar isso, é o chamado aggressive overloading.

O tipo de dado do retorno faz parte da assinatura de um método.
A máquina virtual sabe identificar isso, quem não permite essa construção é o compilador, assim como ele também não permite o uso de goto e const, mesmo a máquina virtual tendo suporte à elas.
:slight_smile:

Vivendo e aprendendo.

Sim, desculpem o equivoco, realmente era que retornassem tipos de dados diferentes.