Полиморфизм — это способность объекта принимать множество форм. Наиболее распространенное использование полиморфизма в объектно-ориентированном программировании (ООП) происходит, когда ссылка на родительский класс используется для ссылки на объект дочернего класса.

Любой объект Java, который может пройти более одного теста IS-A, считается полиморфным. В Java все объекты Java полиморфны, поскольку любой объект пройдет тест IS-A для своего типа и для класса Object.

Собака ЕСТЬ-Животное

Собака IS-A Pet

Собака IS-A Dog

Собака IS-A Object

Полиморфизм позволяет сущности, такой как переменная, функция или объект, иметь более одной формы. Ссылочная переменная может ссылаться на любой объект своего объявленного типа или любого подтипа своего объявленного типа. Ссылочная переменная может быть объявлена ​​как тип класса или интерфейса.

Существует два типа полиморфизма:

  1. Полиморфизм времени компиляции — перегрузка методов
  2. Полиморфизм времени выполнения — выполняется с использованием наследования и интерфейса (переопределение метода)