Lost Dark 0 Denunciar post Postado Maio 20, 2011 Oi pessoal alguém me ajude!! Acabei de entrar no capitulo de orientado a objetos do Livro Java 6 ensino didático. E não está entrando na minha cabeça o Polimorfismo alguem poderia me dar uma explicação mais dinâmica simples ou qlqr explicação!! Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Maio 20, 2011 Você entendeu bem a parte sobre herança? Polimorfismo esta totalmente relacionado. Algumas literaturas tratam vários assuntos em polimorfismo, o código a seguir trata-se apenas de uma exemplificação básica. Vamos lá... imagine as seguintes classes: class Fruta { ... } class Limao extends Fruta { ... } class Laranja extends Fruta { ... } class Melancia extends Fruta { ... } class Uva extends Fruta { ... } Até aqui tudo bem, agora vamos imaginar que existisse um aparelho que fizesse o suco de qualquer fruta. class Suco { ... } class Processador { public Suco prepararSuco(Fruta fruta) { ... } } Agora vamos colocar o aparelho para fazer os sucos: class Main { public static void main(String args[]){ Processador proc = new Processador(); Suco suco1 = proc.prepararSuco(new Laranja()); Suco suco2 = proc.prepararSuco(new Limao()); Suco suco3 = proc.prepararSuco(new Uva()); Suco suco4 = proc.prepararSuco(new Melancia()); } } Repare que, apesar do método prepararSuco ter como parâmetro um objeto do tipo Fruta, estou passando para o método os objetos de cada fruta particular. Isto de fato não faz nada na prática, é apenas para demonstrar o funcionamento do polimorfismo, mas se quiser implementar e ver que funciona mesmo: Não custa nada lembrar, cada classe em seu arquivo java individual. public class Fruta { private String fruta; public String getFruta(){ return this.fruta; } public void setFruta(String fruta){ this.fruta = fruta; } } public class Laranja extends Fruta { public Laranja() { setFruta("laranja"); } } public class Limao extends Fruta { public Limao() { setFruta("limao"); } } public class Uva extends Fruta { public Uva() { setFruta("uva"); } } public class Suco { private String sabor; public Suco(String sabor) { this.sabor = sabor; } public String getSabor(){ return this.sabor; } } class Processador { public Suco prepararSuco(Fruta fruta) { return new Suco(fruta.getFruta()); } } public class Main { public static void main(String[] args) { Processador proc = Processador() Suco suco1 = proc.prepararSuco(new Laranja()); Suco suco2 = proc.prepararSuco(new Uva()); Suco suco3 = proc.prepararSuco(new Limao()); System.out.println(suco1.getSabor()); System.out.println(suco2.getSabor()); System.out.println(suco3.getSabor()); } } Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Maio 21, 2011 Outra forma de polimorfismo é sobrecarga (overload) de métodos - quando um nome de método recebe várias assinaturas diferentes (tipo de retorno e lista de parâmetros). Compartilhar este post Link para o post Compartilhar em outros sites