Зміст курсу
Java ООП
Java ООП
Принципи ООП: Поліморфізм
Поліморфізм
Поліморфізм — ще один принцип OOP. Ви вже стикалися з поліморфізмом, коли перевантажували та перевизначали методи. Загалом, це і є суть поліморфізму. Але визначення поліморфізму може здатися трохи лякаючим:
Але насправді все набагато простіше, ніж здається. Поліморфізм простими словами можна розділити на 2 частини:
Перевантаження методів: те, що ви вивчали в цьому розділі, але давайте повторимо.
Розглянемо приклад: потрібно написати метод, який приймає параметр типу int
і повертає String
, а також метод, який робить те саме, але з параметром типу long
. Ось фрагмент коду:
Main.java
public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Як ви бачите вище, ми створили 2 методи з однаковою назвою, але вони можуть виконувати різні дії. Це перевантаження методу.
Перевизначення методу: Ви вже стикалися з цією темою, коли перевизначали метод
toString
у цьому розділі. Але давайте розглянемо це ще раз.
Розглянемо фрагмент коду, який покаже, як можна перевизначити метод. У нас є клас Airplane
, який наслідується від класу Transport
. У класі Transport
є метод move
, який повертає "This transport has started moving".
Нам потрібно, щоб літак "start flying" замість "moving". Для цього ми перевизначимо метод move
у дочірньому класі:
Transport.java
Airplane.java
public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Як бачите, ми перевизначили метод із батьківського класу в дочірньому класі відповідно до вимог.
Таким чином, поліморфізм чудово доповнює наслідування. Завдяки поліморфізму ми можемо зручно та оптимально розширювати наш код, роблячи його гнучким.
1. Навіщо потрібен поліморфізм у Java?
2. Як поліморфізм доповнює наслідування?
3. Яке ключове слово використовується для перевантаження методу?
Дякуємо за ваш відгук!