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
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
Sobrecarga tem que alterar a lista de argumentos.
Senão,erro de compilação!
Valew!
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…
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 ?
s
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().