Duvida basica overloading

5 respostas
S

galera eu gostaria de ter dois metodos com mesmos nomes que retornam tipos diferentes, tem como exemplo

public String getPreco()

public float getPreco()

vlws galeraaaaaaaaaa

5 Respostas

fec

Sobrecarga tem que alterar a lista de argumentos.
Senão,erro de compilação!
Valew!

leandros

então cara, você pode mudar o retorno, declarar exceções novas, mudar o modificador de acesso, porém a mais importante regra sobre sobrecarga é a alteração dos argumentos…

Falow…

S

Então leandros, no caso o meu tipo de retorno ja é diferente,

mais não funciona, o java não aceita

ou seja não da, eu obrigatoriamente tenho que alterar os argumentos como o fec descreveu,

correto ?

A

s

ViniGodoy

Ou os argumentos, ou o nome da função.

A única forma de você ter duas funções, com mesmo nome, mesmos argumentos, mas tipo de retorno “diferente” é quando vc tem uma classe pai, sobrescreve a função na filha, e na filha retorna um tipo que era filho do retorno na pai.

por exemplo:

public class Pai { public Pai getMe() { return this; } }

public class Filha extends Pai { @override public Filha getMe() { return this; } }

Essa técnica é chamada de tipos de retorno covariantes. É possível pois a filha não está ferindo a interface do pai. Eu coloquei “diferente” aspas, pois o tipo retornada pela filha ainda será do mesmo tipo retornado pelo pai, embora seja uma especialização dele.

Eu sugeriria para você criar dois métodos, o getPreco() e o getPrecoStr().

Normalmente usamos o nome mais simples para o método mais comum, ou que melhor se alinha com o tipo de retorno esperado pela função (no caso do preço, o double).

Ou mesmo, esqueça o método que retorna a String e deixe isso por conta de quem usa o getPreco().

Criado 14 de agosto de 2007
Ultima resposta 15 de ago. de 2007
Respostas 5
Participantes 5