Polimorfismo em Java
O objetivo deste post é fornecer aos alunos uma melhor compreensão do polimorfismo Java , apresentando 2 tipos de polimorfismo:
- Polimorfismo de tempo de compilação.
- Polimorfismo em tempo de execução.
Polimorfismo Java – Tempo de Compilação
O polimorfismo em tempo de compilação pode ser alcançado por meio de sobrecarga de método. Ter múltiplas classes relacionadas à herança resulta em polimorfismo , que significa “muitas formas”.
A herança nos permite utilizar os atributos e métodos de outra classe exatamente como descrevemos no capítulo anterior.
O polimorfismo usa esses métodos para realizar várias tarefas. Usando esta técnica, podemos realizar a mesma ação de maneiras diferentes.
Além disso, podemos usar a sobrecarga e substituição do método Java para implementar o polimorfismo Java .
Por exemplo, suponha uma MotorBikes (superclasse) com um método found_name().
As motos podem ser classificadas como Cruisers, SportsBikes, Scooters e Touring Bikes.
Eles também têm seus respectivos fundadores (Arthur Hugo Cecil Gibson de scooters, John Foster Fraser de bicicletas de turismo, etc.):
Example:
Os dispositivos eletrônicos também podem ser categorizados em robôs, telefones celulares, laptops e outros. Além disso, eles têm um método chamado mrx_desc() que se descreve:
Example:
Os objetos Celulares e Robôs agora podem ser criados e mrx_desc() pode ser chamado em cada um:
Example:
Polimorfismo Java – Tempo de Execução
Um método substituído é chamado em tempo de execução em vez de compilado, e isso é conhecido como polimorfismo em tempo de execução ou despacho de método dinâmico.
Java Polimorfismo funciona com base no princípio de “Upcasting”.
Upcasting é um processo de referenciar o objeto da Subclasse por uma variável de referência da Superclasse é conhecido como upcasting.
O exemplo abaixo define o fenômeno do polimorfismo em tempo de execução:
Example:
O exemplo abaixo ilustra o uso de variáveis implementando o polimorfismo Runtime.
Example:
Usando “herança” e “polimorfismo”: por que e quando?
Ajuda na reutilização de código: ao criar uma nova classe, reutilize atributos e métodos de uma classe existente.