You are on page 1of 6

Мета: Навчитися визначати особливості поліморфізму у мові Java та

використовувати їх при створенні додатків мовою Java.


Обладнання: JetBrains IntelliJ IDEA

Хід роботи

2.1 У середовищі IntelliJ створив проєкт та під'єднав його до репозиторію


Git.
2.2 Відповідно до свого номеру у списку студентської групи обрав завдання
з таблиці 4.4 (Варіант 2).

Рисунок 1 – Завдання для варіанта 2

2.3 Написав відповідний вихідний код програми мовою Java. В завданні 1


всі фрагменти зміг прочитати без компіляції

Змн. Арк. № докум. Підпис Дата


ФКЗЕ.121ТПJ00.10ЛР
Розроб. Хлєбніков М.І. Основи ООП. Застосування Літ. Арк. Аркушів
Перевір. Новодранова В.А поліморфізму при створенні 1 8
Реценз. об'єктно- орієнтованих додатків
мовою Java. Група ПЗ-20-1/9
Н. Контр. Новодранова В.А
Затверд. Саприкіна І.Г.
Арк.

Змін. Арк. № докум. Підпис Дата


ФКЗЕ.121TПJ00.10ЛР 2
Арк.

Змін. Арк. № докум. Підпис Дата


ФКЗЕ.121TПJ00.10ЛР 3
Рисунок 2 – Вихідний код

Рисунок 3 – Результати тестування

Арк.

Змін. Арк. № докум. Підпис Дата


ФКЗЕ.121TПJ00.10ЛР 4
Відповіді на контрольні питання
1. Яка принципова різниця в реалізації принципу поліморфізму існує для
таких мов програмування як С++, Java, Javascript, Python?
Принципова відмінність у реалізації принципу поліморфізму в різних мовах
програмування полягає в способі його реалізації. C++ використовує як
поліморфізм під час компіляції (перевантаження функцій, шаблони), так і
поліморфізм часу виконання (віртуальні функції), тоді як Java, Javascript і
Python покладаються переважно на поліморфізм часу виконання (динамічна
диспетчеризація). У Java всі методи віртуальні за замовчуванням, а
поліморфізм досягається за допомогою успадкування та перевизначення
методів. У Javascript і Python об’єкти вводяться динамічно, а поліморфізм
досягається за допомогою качиного введення, де код буде виконуватися, якщо
об’єкт має відповідні властивості та методи, незалежно від його типу.
2. Які механізми в Java належать до поліморфізму часу компіляції?
У Java механізми, які належать до поліморфізму під час компіляції, це
перевантаження методу та перевизначення методу. Перевантаження методів
дозволяє створювати кілька методів з однаковою назвою, але різними
параметрами, і компілятор вибирає найбільш підходящий на основі типів і
кількості переданих йому аргументів. Перевизначення методу дозволяє
підкласу забезпечити власну реалізацію методу, який уже визначено в його
суперкласі.
3. Яким чином реалізується в Java поліморфізм часу виконання?
Поліморфізм виконання в Java реалізується через динамічну
диспетчеризацію методу, де під час виконання вибирається відповідна
реалізація методу на основі фактичного типу об’єкта, для якого метод
викликається. Це досягається за допомогою успадкування та перевизначення
методу, де підклас може забезпечити власну реалізацію методу, який уже
визначено в його суперкласі.

Арк.

Змін. Арк. № докум. Підпис Дата


ФКЗЕ.121TПJ00.10ЛР 5
4. Яка частина віртуальної машини Java виконує пошук відповідної
реалізації при спробі застосувати метод System.out.println() до об'єкта певного
типу?
У Java відповідну реалізацію методу System.out.println() шукає віртуальна
машина Java (JVM) під час виконання. JVM використовує тип середовища
виконання об’єкта, щоб визначити, яку версію методу println() викликати, на
основі сигнатури методу та типів переданих йому аргументів.
5. Які ососбливості створення та використання переліку існують в Java?
Цей тип даних дозволяє створювати символьні позначення для певних речей
та явищ якщо їхня кількість кінцева, невелика та щодо яких ми звикли
використовувати символьні позначення, наприклад, дні тижня, кольори, ноти
тощо. В Java перелік може бути створений як всередині класів чи інтерфейсів,
так і поза їх межами, якщо перелік знаходиться поза межами класів та
інтерфейсів, він вважається таким що має атрибут public та повинен міститись
в окремому класі, який має таку саму назву, як і перелік.

Висновок: навчився визначати масиви в Java та виконувати операції над


ними

Арк.

Змін. Арк. № докум. Підпис Дата


ФКЗЕ.121TПJ00.10ЛР 6

You might also like