Ir para conteúdo

POWERED BY:

Arquivado

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

julioromano

Polimorfismo

Recommended Posts

Alguém poderia me explicar o que é e citar algum exemplo d polimorfismo em java?!to lendo bastante sobre isso mas naum to compreendendo 100%!valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae pessoal, acho q entendi...

public class Veiculo {   public void acelera(){   //acao   }}public class Carro extends Veiculo {   public void acelera(){   //acao   }}public class Moto extends Veiculo {   public void acelera(){   //acao   }}Veiculo v = new Carro();/*codigo qualquer*/Veiculo v = new Moto();
isso eh polimorfismo?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, é polimorfismo. Polimorfismo é a propriedade q permite ao objeto filho ser usado no lugar do objeto pai.Então, segundo seu exemplo, sempre q você precisar de um objeto do tipo Veiculo, pode utilizar uma instancia da classe carro ou da classe moto.Beijos...Dani....

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmm...demorou mas entendi esse bendito polimorfismo!!!

soh uma duvida q surgiu agora...nesse exemplo, através da variável v, eu posso acessar métodos, tanto de Carro, qto de Moto?

por exemplo:

public class Veiculo {   public void acelera(){   //acao   }}public class Carro extends Veiculo {   public void aceleraMais(){   //acao   }}public class Moto extends Veiculo {   public void aceleraMenos(){   //acao   }}Veiculo v = new Carro();v.aceleraMais();Veiculo v = new Moto();v.aceleraMenos();
isso é possível?!

 

valeu dani

 

brigadão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim... Mas:

Veiculo v = new Carro();  /* v é um Carro. Pode acessar métodos da classe Carro e da classe Veículo. Mas não pode acessar métodos da classe Moto.*/v.aceleraMais();Veiculo v = new Moto(); /* v passa a ser uma Moto. Pode acessar Métodos da classe Moto e da classe Veículo. Mas não pode acessar métodos da classe Carro.*/v.aceleraMenos();
Ok???

Dani....

Compartilhar este post


Link para o post
Compartilhar em outros sites

se fosse

 

public class Veiculo {   public void acelera(){   //acao   }}public class Carro extends Veiculo {   public void aceleraMais(){   //acao   }}public class Moto extends Carro {   public void aceleraMenos(){   //acao   }}Veiculo v = new Moto();v.acelera();v.aceleramais();

seria possivel??

 

a moto acessar os métodos da classe Carro, e da classe Veiculo?

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.