Sobrecarga de metodos

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


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…

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!

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

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;
}

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

[]´s

Carlos

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

[]´s

Carlos[/quote]

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

Veja o que vc disse acima:

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

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

Tente compilar, puxa… :wink:

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

[quote=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[/quote]

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;
 }
 

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

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

[quote=kissdemon]Mas o cast está errado. Tente como eu coloquei:

public int Soma(float num1, float num2) { return (int)(num1 + num2); } [/quote]

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