Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lost Dark

Polimorfismo

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.