Полиморфизм в Java OOPs с примером

Что такое полиморфизм?

Полиморфизм – концепция ООП, где одно имя может иметь много форм.

Например, у вас есть смартфон для связи. Режим связи, который вы выбираете, может быть любым. Это может быть вызов, текстовое сообщение, графическое сообщение, почта и т. Д. Таким образом, общая цель – общение, но их подход отличается. Это называется полиморфизмом.

В этом уроке вы узнаете,

Полиморфизм Java в ООП с примером

У нас есть один родительский класс “Учетная запись”с функцией депозита и снятия. У учетной записи 2 дочерних класса

Операция сохранения и снятия одинакова для сохранения и проверки учетных записей. Таким образом, унаследованные методы из класса Account будут работать.

Изменение требований к программному обеспечению

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

Для фона овердрафт – это средство, в котором вы можете снять сумму, превышающую остаток на вашем счете.

Таким образом, метод отмены для привилегированных потребностей будет реализован заново. Но вы не изменяете проверенную часть кода в учетной записи “Сбережения и проверка”. Это преимущество OOPS

Шаг 1) Таким образом, когда “снятый”метод для сохранения учетной записи называется методом из родительского класса учетной записи.

Шаг 2) Но когда вызывается метод “Withdraw”для привилегированной учетной записи (средство овердрафта), называется метод вывода, определенный в привилегированном классе. Это Полиморфизм.

Переопределение метода

Метод Overriding переопределяет метод суперкласса в подклассе.

Правила переопределения метода

  • Подпись метода, то есть имя метода, список параметров и тип возврата должны точно совпадать.
  • Переопределенный метод может расширить доступность, но не сузить его, т. Е. Если он является частным в базовом классе, дочерний класс может сделать его общедоступным, но не наоборот.

Пример

Разница между перегрузкой и переопределением

Перегрузка метода Переопределение метода
Перегрузка метода находится в том же классе, где более одного метода имеют одно и то же имя, но разные подписи. Переопределение метода – это когда один из методов суперкласса переопределяется в подклассе. В этом случае сигнатура метода остается неизменной.
Пример:
Пример:

Что такое динамический полиморфизм?

Динамический полиморфизм – это механизм, посредством которого несколько методов могут быть определены с одинаковым именем и сигнатурой в суперклассе и подклассе. Вызов переопределенного метода разрешается во время выполнения.

Пример динамического полиморфизма:

Контрольная переменная суперкласса может относиться к объекту подкласса

Рассмотрим утверждение

Здесь ссылочная переменная “obj”относится к родительскому классу, но объект, который он указывает, относится к дочернему классу (как показано на диаграмме).

Если для вызова метода используется ссылка базового класса, метод, который должен быть вызван, определяется JVM, в зависимости от объекта, на который ссылается ссылка

Например, хотя obj является ссылкой на Doctor, он вызывает метод хирурга, поскольку он указывает на объект хирурга

Это определяется во время выполнения и, следовательно, называется динамическим или временным полиморфизмом

Супер ключевое слово

Что делать, если метод treatPatient в классе Surgeon хочет выполнить функциональность, определенную в классе Doctor, а затем выполнить свою собственную специфическую функциональность?

В этом случае ключевое слово superможно использовать для доступа к методам родительского класса из дочернего класса.

Метод treatPatient в классе Surgeon может быть записан как:

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

Шаг 1) Скопируйте следующий код в редактор

Шаг 2) Сохраните, скомпилируйте и запустите код. Наблюдайте за выходом.

Шаг 3) Удаляет строки # 6-9. Сохранить, скомпилировать и запустить код. Наблюдайте за выходом.

Шаг 4) Раскомментируйте строку №10. Сохраните и скомпилируйте код.

Шаг 5) Ошибка =? Это связано с тем, что подкласс не может получить доступ к закрытым членам суперкласса.

Разница между статическим и динамическим полиморфизмом

Статический полиморфизм Динамический полиморфизм
Это относится к перегрузке метода. Это относится к переопределению метода.
Ошибки, если они есть, разрешаются во время компиляции. Поскольку код не выполняется во время компиляции, отсюда и имя static.

Пример:

Если ссылочная переменная вызывает переопределенный метод, метод, который вызывается, определяется объектом, на который указывает эта ссылочная переменная. Это можно определить только во время выполнения, когда код находится в процессе выполнения, следовательно, имя динамическое.

Пример:

0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *