Eae gente tudo ok…
Bem, eu sei que polimorfismo seria assumir várias formas diferentes, como um objeto “filho” se transformam em “pai”.
Mas ainda se referinfo ao polimorfismo, alguem sabe me dizer o que seria uma chamada de metodo?
Segue um exemplo de chamada de método usando polimorfismo.
class Animal {
void eat() {
System.out.println("Animal eating");
}
}
class Dog extends Animal {
void eat() {
System.out.println("Dog eating");
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
Animal d = new Dog();
test(a);
test(d);
}
static void test(Animal a) {
a.eat();
}
}
Espero que ajude.
[quote=brunosol]Eae gente tudo ok…
Bem, eu sei que polimorfismo seria assumir várias formas diferentes, como um objeto “filho” se transformam em “pai”.
Mas ainda se referinfo ao polimorfismo, alguem sabe me dizer o que seria uma chamada de metodo?[/quote]
[code]public abstract class Animal{
public abstract void emitirSom();
}
public class Cachorro extends Animal{
public void emitirSom(){
System.out.println("Au au!");
}
}
public class Pato extends Animal{
public void emitirSom(){
System.out.println("Quack quack!");
}
}
public class Teste{
public static void main(String[] args){
Animal pato = new Pato();
pato.emitirSom();
Animal cachorro = new Cachorro();
cachorro.emitirSom();
}
}[/code] É isso que você quer?
brunosol,
Acho que você está falando do polimorfismo utilizando herança. Os objetos filhos têm o mesmo método do pai, só que cada um de uma forma diferente, por isso o nome polimorfismo = muitas formas.
Mais um exemplo:
[code]abstract class Pessoa {
public abstract String identificacao();
}
class PessoaFisica extends Pessoa {
private String cpf;
public PessoaFisica(String cpf){
this.cpf = cpf;
}
public String identificacao(){
return "Pessoa Fisica - CPF: " + cpf;
}
}
class PessoaJuridica extends Pessoa {
private String cnpj;
public PessoaJuridica(String cnpj){
this.cnpj = cnpj;
}
public String identificacao(){
return "Pessoa Juridica - CNPJ: " + cnpj;
}
}
public class Polimorfico{
public static void main(String args[]){
Pessoa[] pessoas = new Pessoa[4];
pessoas[0] = new PessoaFisica(“343.439.493-43”);
pessoas[1] = new PessoaJuridica(“34.434.903/0001-34”);
pessoas[2] = new PessoaJuridica(“25.494.394/0003-49”);
pessoas[3] = new PessoaFisica(“903.940.900-99”);
for(int i=0; i<4; i++){
Pessoa p = pessoas[i];
System.out.println(p.identificacao());
}
}
}
[/code]
O método identificacao() é um método polimórfico. Você pode ter objetos da classe Pessoa (classe mãe) que contêm instâncias de objetos das classes PessoaFisica e PessoaJuridica. Quando você chama o método identificacao(), são chamados os métodos das instâncias (PessoaFisica e PessoaJuridica).
Você pode implementar polimorfismo em Java usando interfaces também. Abaixo link para uma apresentação que fala sobre isso: