Полиморфизм в Яве

{title}

В объектно-ориентированном программировании есть 3 основных столпа, наследование, которое позволяет нам получать атрибуты и методы родительского класса, инкапсуляция, которая позволяет нам поддерживать методы и атрибуты класса, и которые не должны быть видны за пределами Она и третья сторона полиморфизм .
полиморфизм

Слово полиморфизм происходит от греческого слова и означает, что оно имеет много форм, поэтому мы можем определить, что полиморфизм - это способность использовать многие формы в Java.

тип


Чтобы понять, что такое полиморфизм, мы должны понимать ключевые понятия, одно из которых - это типы, один тип - это определение, которое генерируется из класса, поэтому это приводит нас к двум дополнительным связанным понятиям.
Подтип

Когда мы создаем класс, который наследуется от другого, мы создаем подтип, поскольку это тип, производный от более высокого типа, мы можем, например, сказать, что если у нас есть класс Geometric Figure и из этого мы создаем класс Circle, который наследует его, то наш класс Circle определяет подтип геометрической фигуры.
Супертип

Напротив, когда класс наследуется, он становится суперклассом или родительским классом, поэтому теперь он оказывается супертипом, то есть первичным типом или помогает определить его подтипы, если мы следуем примеру, в котором мы уже определили супертип это будет класс Geometric Figure .
Этим мы определяем понятия, которые помогут нам понять полиморфизм, если мы приведем пример более обширно, мы можем сказать, что Круг всегда будет иметь тип Геометрическая фигура, но не все типы Геометрической фигуры будут иметь тип Круг, если мы говорим о классы, которые мы только что определили, например, если мы сейчас создадим подкласс, который наследуется от класса Geometric Figure и называется Rectangle, у нас теперь есть новый подтип, который все еще принадлежит к типу Geometric Figure, но принимает новую форму, а здесь - полиморфизм.

Практический пример


Поскольку мы ознакомились с теорией типов, мы можем сказать, что подкласс всегда будет типом своего родительского класса, но что родительский класс не будет типом своего подкласса или дочернего класса, и тогда мы увидим следующее пример, где в методе мы запрашиваем объект типа геометрической фигуры по параметру, чтобы мы могли получить множество его форм, в этом случае мы можем получить объект Circle или Rectangle, поскольку оба, несмотря на различие, имеют общий супертип.
Давайте посмотрим на следующем рисунке код, который показывает нам, как метод будет вести себя с полиморфизмом :

{title}


В этом примере метод show object ожидает объект типа Geometric Figure, если мы знаем, что Circle и Rectangle являются подклассами Geometric Figure, то мы можем передать их объекты методу, поскольку они представляют собой разные формы Geometric Figure и выполняют функцию.
Мы уже научились использовать третий столп объектной ориентации, теперь мы можем создавать более широкие методы, которые можно повторно использовать в различных реализациях наших программ на Java .

  • 0