https://youtu.be/uCzQmx2pzfQ

Em seu nível básico, um polimorfismo é parte da teoria matemática dos tipos. Na ciência da computação, um objeto polimórfico é um objeto que pode assumir várias formas.

De outra forma, polimorfismo é uma característica das linguagens orientadas a objetos que permite que um programa processe objetos diferentemente dependendo dos tipos de dados ou classe.

Existem diferentes tipos de polimorfismo, estudaremos nesta aula os seguintes:

  1. Ad hoc (Estático/Tempo de compilação)
  2. Subtyping (Dinâmico)

Nesta aula estudaremos o tipo Subtyping:

Subtyping (sobrescrita)

Um dos mecanismos fundamentais na programação orientada a objetos é o conceito de redefinição (ou sobrescrita ou, no termo em inglês, overriding) de métodos em classes derivadas.

A redefinição ocorre quando um método cuja assinatura já tenha sido especificada recebe uma nova definição (ou seja, um novo corpo) em uma classe derivada

Exemplo

Considere uma classe Veículo com duas classes derivadas, Automóvel e Bicicleta:

Untitled

Essas classes têm três métodos, definidos para veículos de forma geral e redefinidos mais especificamente para automóveis e bicicletas: