Sobrecarga de metodos

13 respostas
wswillian

Galera, gostaria de saber como faço para sobrecarregar um método em JAVA. Alguem poderia me explicar? :wink:

13 Respostas

peron
public int soma(int x, int y){
  return(x+y);
}

public float soma(float x, float y) {
  return(x+y);
}

As regras são simples de sobrecarga de métod:

  1. O nome do metodo deve ser o mesmo;
  2. A ordem dos Parametros ou os tipos de dados devem ser diferentes em um metodo para outro;
  3. O tipo de retorno não voga na regra 2, pois se aplica somente a tipo de parametros, portanto:
public int soma(int x, int y){
  return(x+y);
}

public float soma(int x, inty) {
  return((float)x+y);
}

Vai dar erro de compilação, pois os parametros sao identicos, mesmo que os metodos de retorno sao diferentes…

Essas são as regras principais, se você quiser se aprofundar, é melhor ler um livro :slight_smile:

Att.

espero ter ajudado…

wswillian

Entendir! Neste caso se o metodo for do tipo int seus argumentos devem ser do tipo int mesmo que os métodos tenham os mesmos nomes. Valew!

kissdemon

Colega,

acho que você esta fazendo uma pequena confusão.
Os paratremos do método podem ser qualquer coisa. Se o método é int ele terá que retornar int, mas pode receber o que quiser como parâmetro. No caso da sobrecarga, os parametros precisam ser de tipos diferentes entre os métodos

[]´s

Carlos

wswillian

Mas se caso o método for assim esta certo?

public int Soma(float num1, int num2){
    return int resultado = num1 + num2;
}
public int Soma(int num1, int num2){
    return num1 + num2;
}
kissdemon

O primeiro método vai retornar erro pois recebe 2 parametros float como parametro e o método é int.

[]´s

Carlos

wswillian

kissdemon:
O primeiro método vai retornar erro pois recebe 2 parametros float como parametro e o método é int.

[]´s

Carlos

Sim, mas o retorno dele é inteiro. E aí?

wswillian

Veja o que vc disse acima:

wswillian

Ainda continuo sem entender! Acho que vou procurar um livro. É melhor não é?

kissdemon

Colega,

o que eu quis dizer é que os paratremos do método podem ser qualquer coisa, podem ser float mesmo o método sendo int, mas TEM QUE RETORNAR INT. Exemplo

public int Soma(float num1, float num2){
	     return (int)(num1 + num2);
	 }

Neste caso os parametros são float e o método retorna int.

[]´s

Carlos

peczenyj

Tente compilar, puxa… :wink:

Se o java aceitar, então está “aceito”.

wswillian

kissdemon:
Colega,

o que eu quis dizer é que os paratremos do método podem ser qualquer coisa, podem ser float mesmo o método sendo int, mas TEM QUE RETORNAR INT. Exemplo

public int Soma(float num1, float num2){
	     return (int)(num1 + num2);
	 }

Neste caso os parametros são float e o método retorna int.

[]´s

Carlos

Mas foi o que eu fiz, olhe:

public int Soma(float num1, int num2){
     return int resultado = num1 + num2;
 }
 public int Soma(int num1, int num2){
     return num1 + num2;
 }
kissdemon

Mas o cast está errado. Tente como eu coloquei:

public int Soma(float num1, float num2)
{
 	     return (int)(num1 + num2);
}
wswillian

kissdemon:
Mas o cast está errado. Tente como eu coloquei:

public int Soma(float num1, float num2) { return (int)(num1 + num2); }

Há sim , agora eu entendi, valew cara. Agora vou por a mão na massa, no meu projeto!

Criado 25 de setembro de 2006
Ultima resposta 25 de set. de 2006
Respostas 13
Participantes 4