Então eu sempre tive o seguinte:
Dada a Classe Soma a seguir:
[code]public class Soma {
public int Soma(int x, int y) {
return x+y;
}
public String Soma(String x, String y) {
return x+y;
}
public double Soma(double x, double y) {
return x+y;
}
}[/code]
tem-se a Classe Main
[code]public class Main {
public static void main(String[] args) {
Soma soma = new Soma();
double d = soma.Soma(0.5, 0.5);
int i = soma.Soma(10, 10);
String string = soma.Soma("Plataforma", "Java");
System.out.println(d); //imprime 1.0
System.out.println(i); // imprime 20
System.out.println(string); //imprime Plataforma Java
}
}[/code]
Neste caso eu teria sobrecarga de método no método soma, ou polimorfismo estático (o polimorfismo dá-se em tempo de compilação)
No seguinte exemplo, polimorfismo dinâmico (o polimorfismo dá-se em tempo de execução), com o uso de Interface
[code]public interface Operacao {
int Calcular(int v1, int v2);
}[/code]
[code]public class Soma implements Operacao {
public int Calcular(int v1, int v2) {
return v1+v2;
}
}[/code]
[code]public class Subtrair implements Operacao {
public int Calcular(int v1, int v2) {
return v1-v2;
}
}[/code]
[code]public class Conta {
private static void mostrarResultado(Operacao op, int v1, int v2) {
int resultado = op.Calcular(v1, v2);
System.out.println(resultado);
}
public static void main(String[] args) {
Soma soma = new Soma();
Subtrair subtrair = new Subtrair();
Conta.mostrarResultado(soma, 30, 20); //imprime 50
Conta.mostrarResultado(subtrair, 30, 20); //imprime 10
}
}[/code]
Basicamente é assim q eu entendo polimorfismo hj … seria + ou - isso??