atesting.ru Блог Полиморфизм в Java | Учебник по Java

Полиморфизм в Java | Учебник по Java

Полиморфизм позволяет нам выполнять задачу несколькими способами. Давайте разберемся со словом «полиморфизм» и посмотрим: «Поли» означает «Многие», а «Морфос» означает «Формы».

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

 Полиморфизм в Java | Руководство по Java

Подробное объяснение с некоторыми примерами программ о полиморфизме мы увидим в посте, посвященном полиморфизму .

В Java есть два типа полиморфизма

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

Мы можем выполнить полиморфизм с помощью «перегрузки метода» и «переопределения метода»

Я рекомендую вам просмотреть следующие сообщения.

Перегрузка метода: (статический полиморфизм/полиморфизм времени компиляции)

Переопределение метода: (динамический полиморфизм/полиморфизм времени выполнения )

Давайте посмотрим на несколько практических примеров полиморфизма времени компиляции и полиморфизма времени выполнения.

Полиморфизм времени компиляции:

123456789101112131415161718192021222324 ackage polymorphismCompileTime; открытый класс CompileTimePolymorphismClass {void myMethod (int a) {System.out.println (& # 34; значение a равно & # 34; + a); } void myMethod (int a, int b) {System.out.println (& # 34; значение a равно & # 34; + a + & # 34; и значение b равно & # 34; + b); } void myMethod (String a) {System.out.println (a); } public static void main (String [] args) {CompileTimePolymorphismClass obj = new CompileTimePolymorphismClass (); obj.myMethod (10); obj.myMethod (10, 20); obj.myMethod (& # 34; Я строка & # 34;); }}

Вывод:

123 значение a равно 10, значение a равно 10, а значение b равно 20 Я Строка

Полиморфизм времени выполнения:

123456789 полиморфизм пакетаRunTime; открытый класс MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из родительского класса & # 34;); }}

12345678910111213141516 полиморфизм пакетаRunTime; открытый класс MethodOverridingChildClass расширяет MethodOverridingParentClass {public void myMethod () {System.out.println (& # 34; Я метод из дочернего класса & # 34;); } public static void main (String [] args) {MethodOverridingParentClass obj = new MethodOverridingChildClass (); //Он вызывает метод дочернего класса myMethod () obj.myMethod (); }}

Вывод:

1 Я метод из дочернего класса

TAG: qa