diff --git a/README.md b/README.md
index 8320639887..46c9562fc7 100644
--- a/README.md
+++ b/README.md
@@ -128,7 +128,7 @@ Want to contribute? [Here](https://github.com/linkedin-faq) is the source code.
| [node.js](node.js/node.js-quiz.md) | | | 90 | 90 | [@pbachman](https://github.com/pbachman) |
| [NoSQL](nosql/nosql-quiz.md) | | | 51 | 51 | |
| [objective-c](objective-c/objective-c-quiz.md) | | | 51 | 51 | |
-| [OOP](object-oriented-programming/object-oriented-programming-quiz.md) | | | 122 | 122 | [@declarck](https://github.com/declarck), [@gaurovgiri](https://github.com/gaurovgiri) |
+| [OOP](object-oriented-programming/object-oriented-programming-quiz.md) | |[](object-oriented-programming/object-oriented-programming-quiz-ua.md) | 122 | 122 | [@declarck](https://github.com/declarck), [@gaurovgiri](https://github.com/gaurovgiri) |
| [PHP](php/php-quiz.md) | | | 105 | 105 | [@ruslanbes](https://github.com/ruslanbes), [@msteiner96](https://github.com/msteiner96) |
| [Pro Tools](pro-tools/pro-tools-quiz.md) | | | 16 | 16 | |
| [Python](python/python-quiz.md) | | [](python/python-quiz-es.md) | 184 | 184 | [@tik9](https://github.com/tik9), [@Amsal1](https://github.com/Amsal1), [@declarck](https://github.com/declarck), [@TSG405](https://github.com/tsg405) |
diff --git a/object-oriented-programming/object-oriented-programming-quiz-ua.md b/object-oriented-programming/object-oriented-programming-quiz-ua.md
new file mode 100644
index 0000000000..7cb14f375c
--- /dev/null
+++ b/object-oriented-programming/object-oriented-programming-quiz-ua.md
@@ -0,0 +1,960 @@
+## Об'єктно-орієнтоване програмування (ООП)
+
+#### Q1. Що є прикладом динамічного зв’язування?
+
+- [ ] будь-який метод
+- [ ] перевантаження методу
+- [x] перевизначення методу
+- [ ] компіляція
+
+#### Q2. Для якого випадку буде доцільним використання статичного атрибута?
+
+- [ ] кількість людей у кожному будинку в невеликому мікрорайоні
+- [ ] розмір ділянки для кожного будинку в невеликому районі
+- [ ] колір кожного будинку в маленькому районі
+- [x] погодні умови для кожного будинку в невеликому районі
+
+#### Q3. 1 Навіщо створювати абстрактний клас, якщо він не може мати жодних реальних екземплярів?
+
+- [x] щоб уникнути надлишкового кодування у дітей
+- [ ] дослідити гіпотетичний клас
+- [ ] щоб запобігти використанню небажаного методу
+- [ ] щоб зарезервувати пам'ять для класу невизначеного типу
+
+#### Q4. 2 Навіщо створювати абстрактний клас, якщо він не може мати жодних реальних екземплярів?
+
+- [x] щоб отримати спільну поведінку в похідних класах
+- [ ] для дослідження гіпотетичного класу
+- [ ] для запобігання небажаній реалізації методу
+- [ ] для резервування пам'яті для класу невизначеного типу
+
+#### Q5. Коли відбувається статичне зв’язування?
+
+- [ ] лише під час експорту
+- [ ] як під час компіляції, так і під час виконання
+- [x] під час компіляції
+- [ ] під час виконання
+
+#### Q6. Що є найкращою причиною для використання шаблону проектування?
+
+- [x] Це призведе до коду, який буде більш розширюваним і придатним для обслуговування
+- [ ] Це дозволить отримати більш компактний продукт.
+- [ ] Це пришвидшить початкову розробку.
+- [ ] Це дозволить додати до свого резюме шаблон проєктування.
+
+#### Q7. Що таке інкапсуляція?
+
+- [ ] визначення класів шляхом зосередження на тому, що важливо для мети
+- [x] приховування даних і деталей реалізації в межах класу
+- [ ] зробити всі методи приватними
+- [ ] використання слів для визначення класів
+
+#### Q8. Що таке відносини IS-A?
+
+- [ ] Це передбачає інкапсуляцію.
+- [ ] Об’єкт суперкласу має зв’язок IS-A зі своїм підкласом.
+- [ ] Це передбачає віртуальний метод.
+- [x] Об'єкт підкласу має зв'язок IS-A зі своїм суперкласом або інтерфейсом
+
+#### Q9. Вам потрібен метод з поведінкою, подібною до віртуального методу - очікується, що - він має бути перевизначений та не має тіла методу. Він просто має сигнатуру методу. Який метод слід використовувати?
+
+- [x] abstract метод
+- [ ] внутрішній метод public
+- [ ] внутрішній метод
+- [ ] внутрішній метод protected
+
+#### Q10. Який код створює новий об'єкт з класу Employee?
+
+- [ ] Employee currentEmployee = Employee.Create();
+- [x] Employee currentEmployee = new Employee();
+- [ ] Employee currentEmployee;
+- [ ] Employee currentEmployee = Employee.New();
+
+#### Q11. Який тип конструктора не може мати return?
+
+- [ ] за замовчуванням
+- [ ] копіювання
+- [ ] з параметрами
+- [x] Конструктори взагалі не мають return
+
+#### Q12. 1 Коли виконується конструктор?
+
+- [x] коли об’єкт створюється з класу з використанням ключового слова new
+- [ ] коли клас визначено за допомогою ключового слова class
+- [ ] кожного разу, коли є посилання на об’єкт
+- [ ] коли об’єкт створюється з класу за допомогою ключового слова create
+
+#### Q13. 2 Коли виконується конструктор?
+
+- [x] коли об'єкт створюється з класу
+- [ ] коли клас визначено за допомогою ключового слова class
+- [ ] кожного разу, коли є посилання на об’єкт
+- [ ] коли об’єкт створюється з класу за допомогою ключового слова create
+
+#### Q14. Якщо локальний клас визначено у функції, що вірно для об’єкта цього класу?
+
+- [x] Об’єкт може бути доступний, оголошений і використаний локально в цій функції.
+- [ ] Об’єкт має бути оголошено всередині будь-якої іншої функції.
+- [ ] Об’єкт тимчасово доступний поза функцією.
+- [ ] Об’єкт може викликати всіх інших членів класу будь-де в програмі.
+
+#### Q15. Які два блоки використовуються для обробки та перевірки помилок?
+
+- [ ] do та check
+- [ ] catching та trying
+- [x] try та catch
+- [ ] do та while
+
+#### Q16. Навіщо реалізовувати композицію, використовуючи ідентифікатор замість посилання?
+
+- [ ] Це полегшує збереження сутності.
+- [x] усі ці відповіді
+- [ ] Це може зробити пошук сутності більш ефективним
+- [ ] Це мінімізує зчеплення.
+
+#### Q17. Який вислів найкраще описує метод наслідування в ООП?
+
+- [x] Наслідування описує можливість створювати нові класи на основі існуючого класу.
+- [ ] Наслідування означає, що група пов’язаних властивостей, методів та інших членів розглядається як єдина одиниця або об’єкт.
+- [ ] Наслідування змушує клас мати єдину відповідальність лише від одного батька.
+- [ ] Наслідування означає, що у вас ніколи не буде кількох класів, які можна використовувати як взаємозамінні, навіть якщо кожен клас реалізує ті самі властивості чи методи різними способами.
+
+#### Q18. Який тип наслідування, якщо воно виконується безперервно, подібний до деревовидної структури?
+
+- [ ] багаторівневий
+- [ ] ієрархічний і множинний
+- [x] ієрархічний
+- [ ] багаторазовий
+
+#### Q19. Яке твердження вірне?
+
+- [ ] Конструктор параметра за замовчуванням не еквівалентний конструктору за замовчуванням
+- [ ] Конструктор за замовчуванням наслідується від батьківського класу
+- [x] Конструктор за замовчуванням можна викликати явно
+- [ ] Конструктор за замовчуванням не може бути визначений програмістом
+
+[довідка]() "Конструктори можуть бути викликані явно або неявно. Метод неявного виклику конструктора також називається скороченим методом."
+
+#### Q20. Що з наведеного НЕ є перевагою використання геттерів і сеттерів?
+
+- [x] Геттери та сетери можуть прискорити компіляцію.
+- [ ] Геттери та сетери забезпечують інкапсуляцію поведінки.
+- [ ] Геттери та сетери забезпечують точку налагодження, коли властивість змінюється під час виконання.
+- [ ] Геттери та сетери дозволяють різні рівні доступу.
+
+### Q21. У контексті ООП, що таке асоціація?
+
+- [x] Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл і не мають власника.
+- [ ] Асоціація — це процес, при якому елементи моделі взаємодіють для забезпечення поведінки більш високого рівня.
+- [ ] Асоціація — це відношення "ціле/частина", де один об'єкт складається з одного або кількох інших об'єктів, кожен з яких є частиною цілого.
+- [ ] Асоціація — це зв’язок, де всі об’єкти мають свій власний життєвий цикл, але існує власність, і дочірні об'єкти не можуть належати іншому батьківському об'єкту.
+
+[Довідка](https://uk.wikipedia.org/wiki/Асоціація_(об'єктно-орієнтоване_програмування))
+
+#### Q22. Чим User Stories відрізняються від Use Cases?
+
+- [x] User Stories коротші і менш детальні.
+- [ ] User Stories точніші.
+- [ ] User Stories більш детальні і структуровані.
+- [ ] User Storise більш анекдотичні та особисті.
+
+#### Q23. Який тип наслідування слід використовувати, щоб результат був гібридним?
+
+- [x] Множинне
+- [ ] Будь-який тип наслідування
+- [ ] Многоступеневе
+- [ ] Ієрархічне
+
+**Пояснення:**
+
+- **Одинарне наслідування** – це коли похідний клас успадковує властивості та поведінку від одного базового класу. Наприклад: Клас A → Клас B.
+- **Ієрархічне наслідування** – це коли кілька похідних класів створюються з одного базового класу. Наприклад: Клас A → Клас B → Клас C.
+- **Множинне наслідування** – це коли клас успадковується від кількох базових класів. Об'єкти, створені програмістами, матимуть об'єднані аспекти характеристик і функцій з кількох батьківських класів. Ці об'єкти дотримуються ієрархій своїх базових класів.
+- **Многоступеневе наслідування** – це коли похідний клас успадковується від іншого похідного класу. Ця особливість об'єднує аспекти кількох класів і дотримується їх ієрархій.
+- **Гібридне наслідування** – це неоднорідна функція використання множинного наслідування. Тут похідний клас створюється з комбінацій одиночного, ієрархічного та многоступеневого наслідувань. Це наслідування використовується для змішування різних типів наслідування, наприклад, коли одиночне наслідування змішується з множинним наслідуванням або ситуація, коли множинне наслідування змішується в межах однієї програми.
+
+[Довідка](https://foxminded.ua/principi-oop-spadkuvannja/)
+
+#### Q24. Мова, яка не підтримує поліморфізм, але підтримує класи, вважається якою?
+
+- [x] об'єктно-орієнтованою мовою
+- [ ] мовою, основаною на класах
+- [ ] мовою, орієнтованою на процедури
+- [ ] якщо класи підтримуються, поліморфізм також буде підтримуватися
+
+[Довідка](https://uk.wikipedia.org/wiki/Об'єктно-орієнтоване_програмування)
+
+#### Q25. Два класи поєднують private атрибути і надають public методи для доступу та маніпулювання цими даними. Де використовується абстракція?
+
+- [ ] Абстракція використовує private специфікатор доступу для атрибутів.
+- [x] Абстракція використовує public методи для доступу та маніпулювання атрибутами.
+- [ ] Абстракція використовує концепцію класу з обома, і атрибутами, і методами.
+- [ ] Недостатньо інформації для визначення, де використовується абстракція.
+
+**Пояснення:**
+
+Абстракція в об'єктно-орієнтованому програмуванні означає приховування внутрішніх деталей реалізації і надання тільки необхідного інтерфейсу для взаємодії з об'єктом. В цьому випадку, публічні методи, які забезпечують доступ до приватних атрибутів, є прикладом абстракції, оскільки користувачі класу взаємодіють з даними через ці функції, не маючи доступу до деталей реалізації даних.
+
+#### Q26. Які п'ять патернів створення з книги "Банда чотирьох(Gang of Four)"?
+
+- [ ] Observer, State, Strategy, Template Method і Visitor.
+- [ ] Composite, Visitor, State, Prototype і Singleton.
+- [ ] Composite, Builder, Factory Method, Prototype і Singleton.
+- [x] Abstract Factory, Builder, Factory Method, Prototype і Singleton.
+
+#### Q27. У багаторівневому наслідуванні один клас наслідує скільки класів?
+
+- [x] лише один клас
+- [ ] два класи
+- [ ] стільки класів, скільки потрібно
+- [ ] принаймні два класи
+
+#### Q28. Якщо об'єкт передається за посиланням, зміни, зроблені у функції, розповсюджуються \_
+
+- [x] на основний об'єкт викликаючої функції
+- [ ] на об'єкт викликаючої функції та на об'єкт викликаної функції
+- [ ] на копії об'єкта, яка створюється під час передачі
+- [ ] лише в локальному контексті викликаної функції
+
+#### Q29. Що таке метод?
+
+- [ ] набір інструкцій, призначений для виконання операції що часто використовується в програмі і не повертає значень
+- [ ] те саме, що функція та підпрограма
+- [ ] набір змінних, які можуть змінюватися з часом
+- [x] функції, прив'язані до конкретних класів (або екземплярів) у об'єктно-орієнтованому програмуванні
+
+#### Q30. Мобільний телефон складається з компонентів, таких як материнська плата, камера і датчики. Материнська плата представляє всі функції телефону, дисплей показує лише зображення, а телефон представлений як єдине ціле. Який з наведених компонентів має найвищий рівень абстракції?
+
+- [ ] камера
+- [ ] дисплей
+- [ ] материнська плата
+- [x] мобільний телефон
+
+#### Q31. Який клас має найвищий рівень абстракції у відносинах багаторівневого наслідування з п'ятьма рівнями?
+
+- [ ] клас на третьому рівні
+- [x] клас на першому рівні
+- [ ] Всі мають однаковий рівень абстракції.
+- [ ] клас на другому рівні
+
+#### Q32. Який з наступних варіантів НЕ є базовим типом наслідування?
+
+- [ ] багаторівневе наслідування
+- [x] подвійне наслідування
+- [ ] одиночне наслідування
+- [ ] ієрархічне наслідування
+
+#### Q33. Чому дублювання коду є таким підступним?
+
+- [ ] Дублювання використовує зайвий простір.
+- [x] Потрібно підтримувати всі дублікати.
+- [ ] Дублювання може викликати занепокоєння щодо інтелектуальної власності.
+- [ ] Дублювання легко приховати.
+
+#### Q34. Коли і як часто викликається статичний конструктор?
+
+- [ ] Він викликається спочатку, коли створюється об'єкт, і викликається з кожним новим екземпляром об'єкта.
+- [ ] Він викликається, коли об'єкт знищується, і тільки один раз.
+- [x] Він викликається спочатку, коли створюється об'єкт, і тільки один раз.
+- [ ] Він створюється в момент, коли об'єкт відкидається.
+
+#### Q35. Що демонструє наведених нижче код і чому?
+
+```cpp
+ static void Multiply(int num1, int num2) {};
+ static void Multiply(double num1, double num2, double num3) {};
+ static void Multiply(float num1, float num2) {};
+```
+
+- [ ] поліморфізм, тому що кожен метод може виконувати різне завдання
+- [ ] перевизначення методу, тому що відображає однакову назву методу, різні або однакові параметри і той же тип поверненняtype
+- [x] перевантаження методу, тому що дозволяє створювати кілька методів з однією назвою, які відрізняються типом параметрів
+- [ ] перевизначення методу, тому що відображає однакову назву методу, різні параметри і той же тип повернення
+
+#### Q36. Яка мета використання статичного конструктора?
+
+- [ ] для ініціалізації всіх членів зі статичним значенням
+- [ ] для видалення статичних членів, коли вони не потрібні
+- [x] для ініціалізації статичних членів класу
+- [ ] для очищення всіх ініціалізованих значень статичних членів
+
+#### Q37. Що таке картки CRC?
+
+- [ ] Code Responsibility Collection картки - це інструмент для мозкового штурму, що використовується в проектуванні процедурного програмного забезпечення.
+- [x] Class Responsibility collaboration картки — це інструмент для мозкового штурму, що використовується в проектуванні об'єктно-орієнтованого програмного забезпечення.
+- [ ] Code Responsibility Correction картки — це інструменти для відлагодження.
+- [ ] Code Responsibility Correction картки — це інструменти для моделювання.
+
+[Довідка](https://uk.wikipedia.org/wiki/CRC_картка)
+
+#### Q38. Чим вміст композиції відрізняється від вмісту агрегації?
+
+- [ ] Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
+- [x] Якщо композиція знищується, вміст також знищується.
+- [ ] Вміст композиції - це всі брати та сестри.
+- [ ] Агрегація містить лише абстрактні класи.
+
+#### Q39. Яке з наступних тверджень про композиції та агрегації є правильним?
+
+- [ ] Якщо один елемент агрегації звільняється, всі його елементи стають придатними для збору сміття.
+- [x] Якщо композиція знищується, вміст також знищується.
+- [ ] Вміст композиції є всіма братами і сестрами.
+- [ ] Агрегація містить лише абстрактні класи.
+
+#### Q40. Який результат використання більшого рівня абстракції?
+
+- [ ] Може підвищити вразливість коду.
+- [ ] Може зробити код небезпечнішим.
+- [x] Може знизити читаність коду.
+- [ ] Може бути безпечнішим для кодування.
+
+#### Q41. Що є неправильним щодо член-функцій класу?
+
+- [ ] Член-функції можуть бути визначені тільки всередині або поза тілом класу.
+- [ ] Член-функції можуть бути оголошені друзями іншого класу.
+- [x] Член-функції не потрібно оголошувати всередині визначення класу.
+- [ ] Усі член-функції повинні бути визначені.
+
+#### Q42. Чому при створенні нового класу використовується наслідування?
+
+- [ ] щоб захистити атрибути від небажаних змін
+- [ ] щоб ефективніше делегувати відповідальність
+- [ ] щоб заощаджувати пам'ять
+- [x] щоб розділити поведінку класу від загальнішого до більш специфічного
+
+#### Q43. Окрім атрибутів і поведінки, яку якість повинен мати клас?
+
+- [x] назву
+- [ ] стан
+- [ ] колір
+- [ ] об'єкт
+
+#### Q44. Який тип функції серед наведених демонструє поліморфізм?
+
+- [ ] вбудована функція
+- [ ] невизначена функція
+- [x] віртуальна функція
+- [ ] функція-член класу
+
+#### Q45. Які слова з наведеного списку є кандидатами на об'єкти: trumpet, clean, enrage, leaf, tree, collapse, active, і lively?
+
+- [ ] leaf і tree
+- [ ] clean, enrage і collapse
+- [ ] clean, active і lively
+- [x] leaf, tree і trumpet
+
+#### Q46. Що найкраще описує те, що робить об'єктно-орієнтоване програмування?
+
+- [x] Воно фокусується на об'єктах, які взаємодіють один з одним.
+- [ ] Воно потрібне виключно для інтерфейсів.
+- [ ] Воно потрібне виключно для класів.
+- [ ] Воно створює один клас для всієї бізнес-логіки.
+
+#### Q47. Чи можуть абстрактні класи використовуватися в багаторівневому наслідуванні?
+
+- [ ] Ні, абстрактні класи можуть використовуватися тільки в одно-рівневому наслідуванні, оскільки їх потрібно реалізувати негайно.
+- [x] Так, завжди
+- [ ] Так, але тільки з одним абстрактним класом
+- [ ] Ні, абстрактні класи не мають конструкторів.
+
+#### Q48. Який тип наслідування може призвести до проблеми діаманта?
+
+- [ ] одно-рівневе
+- [ ] багаторівневе
+- [ ] ієрархічне
+- [x] множинне
+
+#### Q49. Який взаємозв'язок між абстракцією та інкапсуляцією?
+
+- [x] Абстракція полягає у приховуванні непотрібних деталей і показі тільки суттєвої інформації, тоді як інкапсуляція дозволяє програмісту реалізувати бажаний рівень абстракції.
+- [ ] Абстракція та інкапсуляція по суті одне і те саме.
+- [ ] Абстракція та інкапсуляція не пов'язані.
+- [ ] Інкапсуляція полягає у виведенні наявної інформації, тоді як абстракція дозволяє програмісту реалізувати бажаний рівень інкапсуляції.
+
+#### Q50. Які з цих ключових слів є специфікаторами доступу?
+
+- [ ] abstract та public
+- [x] public та private
+- [ ] this та final
+- [ ] final та abstract
+
+#### Q51. Що таке посилання на об'єкт?
+
+- [ ] Це адреса лише змінної — не методу об'єкта.
+- [ ] Це поверхневий покажчик, що містить адресу об'єкта.
+- [ ] Це фізична адреса об'єкта.
+- [x] Це адреса, де зберігаються змінні та методи об'єкта.
+
+#### Q52. Чому модульне тестування є складнішим в ООП порівняно з функціональним програмуванням?
+
+- [x] Об'єкти можуть підтримувати внутрішній стан, який не є легко доступним для тестів.
+- [ ] Якість фреймворків для модульного тестування функціональних мов є кращою.
+- [ ] ООП сприяє повторному використанню коду, що означає, що ваші тести повинні враховувати більше випадків використання.
+- [ ] Об'єктно-орієнтовані мови часто залежать від фреймворків, таких як Spring або Hibernate, що ускладнює їх тестування.
+
+#### Q53. Яка функція діаграми випадків використання?
+
+- [x] Вона з'єднує учасників з випадками використання.
+- [ ] Вона пов'язує учасників з ролями, які вони виконують у всіх випадках використання.
+- [ ] Вона перераховує всіх учасників для кожного випадку використання.
+- [ ] Вона зменшує кількість учасників, які необхідні.
+
+#### Q54. Чим відрізняються поведінка об'єкта та атрибути?
+
+- [ ] Поведінка описує динамічні властивості; атрибути є статичними.
+- [x] Атрибути описують стан; поведінка описує зміну.
+- [ ] Атрибути застосовуються тільки до конкретного об'єкта; поведінка застосовується до інших зв'язаних об'єктів.
+- [ ] Поведінка є векторними величинами; атрибути є скалярними величинами.
+
+#### Q55. Принцип відкритості/закритості стверджує, що класи повинні бути відкритими для \_ але закритими для \_
+
+- [ ] модифікації; дублювання
+- [ ] рефакторингу; дублювання
+- [x] розширення; модифікації
+- [ ] повторного використання; інкапсуляції
+
+#### Q56. Чому можливо перевизначити метод базового класу?
+
+- [ ] щоб визначити метод, який має бути реалізований у похідному класі
+- [x] щоб визначити власну реалізацію успадкованого члена
+- [ ] щоб визначити метод, який має бути реалізований тільки в суперкласі
+- [ ] щоб визначити клас, який може бути успадкований
+
+#### Q57. Що таке конструктор копіювання?
+
+- [x] Це унікальний конструктор для створення нового об'єкта як копії вже існуючого. Можливий лише один конструктор копіювання, який може бути визначений користувачем або системою.
+- [ ] Це конструктор, який дублює себе на вимогу.
+- [ ] Це загальний конструктор для запобігання створенню нового об'єкта як копії вже існуючого. Можливі кілька стандартних конструкторів, які можуть бути визначені користувачем або системою.
+- [ ] Це конструктор, який дублює себе самостійно, базуючись на доступній пам'яті.
+
+#### Q58. Який вираз найбільш точно описує блок `catch`?
+
+- [x] Блок `catch`, який буде виконано, це той, що найкраще відповідає типу винятку, що виник.
+- [ ] Кілька блоків `catch` ніколи не можуть бути асоційовані з одним блоком `try`.
+- [ ] Кілька блоків `catch` є обов'язковими для кожного блоку `try`.
+- [ ] У випадку винятку всі блоки `catch` будуть виконані.
+
+#### Q59. Є п'ять класів. Клас E успадковується від класу D, D від C, C від B, і B від A. Які конструктори класів будуть викликані першими, якщо створюється об'єкт класу E або D?
+
+- [x] A
+- [ ] B
+- [ ] C
+- [ ] C і B
+
+#### Q60. У вас є модулі, що залежать один від одного. Якщо ви змінюєте один модуль, потрібно внести зміни у залежні. Який термін використовується для опису цієї проблеми, і яке можливе рішення?
+
+- [ ] Зв'язність. Рішенням є показати, що кожен модуль має певні обов'язки, і використовувати антизалежний шаблон проектування.
+- [ ] Інкапсуляція. Рішенням є впровадження одного з принципів SOLID для забезпечення того, щоб модулі не інкапсулювали один в одного.
+- [x] Залежність. Рішенням є рефакторинг коду для досягнення слабкої зв'язності за допомогою інверсії контролю та впровадження залежностей.
+- [ ] Залежність. Рішенням є впровадження поліморфізму та абстракції для зміни та вилучення залежних елементів модуля так, щоб він функціонував самостійно.
+
+#### Q61. **\_** описує агрегацію
+
+- [ ] Клас ресурсів
+- [ ] Група методів
+- [x] Колекція об'єктів
+- [ ] Список дітей
+
+#### Q62. Який тип функції можна використовувати для поліморфізму?
+
+- [x] virtual function
+- [ ] inline function
+- [ ] undefined function
+- [ ] private function
+
+#### Q63. Яка перевага використання впровадження залежностей?
+
+- [x] слабка зв'язність
+- [ ] повторне використання коду
+- [ ] ліниве ініціалізування
+- [ ] абстракція даних
+
+#### Q64. Чи потрібно повертати об'єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
+
+- [ ] Так, викликаюча функція повинна відобразити зміни.
+- [ ] Ні, натомість потрібно використовувати глобальну змінну.
+- [x] Ні, зміни будуть автоматично відображені у викликаючій функції.
+- [ ] Так, об'єкт повинен бути таким же у викликаючій функції.
+
+#### Q65. Чому потрібне наслідування?
+
+- [x] ...
+
+#### Q66. Який найкращий приклад відношення суперкласу і підкласу?
+
+- [x] автомобіль:тойота
+- [ ] качки:ставок
+- [ ] пальці:ноги
+- [ ] скала:камінь
+
+#### Q67. Які твердження найкраще описують шаблони проектування Gang of Four(Банди чотирьох) під назвою Memento та Observer?
+
+- [ ] Memento повідомляє кілька класів про зміни. Observer захоплює та відновлює внутрішній стан об'єкта.
+- [ ] Memento відтерміновує точні кроки алгоритму для підкласу. Observer визначає нову операцію для класу без змін.
+- [ ] Memento змінює поведінку об'єкта, коли його стан змінюється. Observer інкапсулює алгоритм всередині класу.
+- [x] Memento захоплює та відновлює внутрішній стан об'єкта. Observer повідомляє кілька класів про зміни.
+
+#### Q68. Що вказує значення (0.5,0.5,0.5) у специфікації класової діаграми position: Coordinate = (0.5,0.5,0.5)?
+
+- [ ] типове значення атрибута Coordinate
+- [ ] розмір масиву position
+- [ ] збільшення значення атрибута position
+- [x] типове значення атрибута position
+
+##### Q69. Який найбільш точний приклад принципу заміщення Ліскова?
+
+- [ ] A
+
+```java
+public class Car{
+}
+public class FlyingCars extends Car{
+ public void fly(){}
+}
+public class Tesla FlyingCar{}
+public class Honda Car{}
+```
+
+- [ ] B
+
+```java
+public class Car{
+ public void fly(){}
+}
+public class Tesla extends Car{}
+public class Honda extends Car{}
+```
+
+- [ ] C
+
+```java
+public class Car{
+public void fly(){}
+}
+public class Tesla Car{}
+public class Honda Car{}
+```
+
+- [x] D
+
+```java
+public class Car{
+}
+public class FlyingCars extends Car{
+ public void fly(){}
+}
+public class Tesla extends FlyingCar{}
+public class Honda extends Car{}
+```
+
+[Довідка](https://stackoverflow.com/a/44913313/1573267)
+
+#### Q70. Яка різниця між параметром і аргументом?
+
+- [ ] Аргумент може мати багато значень, тоді як параметр може мати лише одне значення.
+- [ ] Аргумент — це змінна, яка використовується для значень введення в методі. Параметр — це конкретне значення, яке передається в метод.
+- [x] Параметр — це змінна у декларації функції. Аргумент — це значення цієї змінної, яке передається функції.
+- [ ] Параметри та аргументи — це одне і те саме.
+
+#### Q71. Який обсяг видимості має клас, вкладений всередину іншого класу?
+
+- [ ] Захищений (Protected)
+- [ ] Приватний (Private)
+- [ ] Глобальний (Global)
+- [x] Залежить від специфікатора доступу та використаного наслідування
+
+> Пояснення: Це залежить від специфікатора доступу та типу наслідування, яке використовується з класом, оскільки якщо клас наслідується, то вкладений клас може бути використаний і підкласом, якщо він не є приватним.
+
+#### Q72. Методи та атрибути, які визначають об'єкт, є своєрідним шаблоном, як його назва?
+
+- [ ] Колекція (Collection)
+- [ ] Змінна (Variable)
+- [x] Клас (Class)
+- [ ] Процедура (Procedure)
+
+#### Q73. Припустимо, що використовується одиночне наслідування з класами A та B, де A є базовим класом. Потім припустимо, що є класи C, D та E, де C є базовим класом, а D наслідується від C, а E наслідується від D. Клас C робиться успадкованим від класу B. Який тип наслідування відображено?
+
+- [x] Многоступеневе (Multilevel)
+- [ ] Гібридне (Hybrid)
+- [ ] Одиночне (Single level)
+- [ ] Множинне (Multiple)
+
+#### Q74. Яка основна ідея розділення проблем?
+
+- [x] Усі ці відповіді
+- [ ] Додатки розбиваються на частини
+- [ ] Частини визначені з мінімальним перетином
+- [ ] Кожна частина відповідає за окрему проблему
+
+#### Q75. Яка мета блоку `finally`?
+
+- [x] Завжди виконувати блок коду `finally`, коли блок `try` виключено
+- [ ] Виконувати код, коли виключення не сталося
+- [ ] Виконувати блок, якщо сталося виключення
+- [ ] Виконувати код, коли цього потребує збірка сміття
+
+#### Q76. Який з варіантів не є мовою ООП?
+
+- [ ] C#
+- [ ] Java
+- [x] C
+- [ ] Python
+
+#### Q77. Яка функція фіналізатора або деструктора?
+
+- [x] Звільняти ресурси, які більше не потрібні
+- [ ] Видаляти ім'я змінної
+- [ ] Скидувати значення атрибута
+- [ ] Зберігати місце, навіть після того, як об'єкт більше не використовується
+
+#### Q78. Який тип класу не можна створити?
+
+- [ ] Захищений клас (Protected class)
+- [ ] Базовий клас (Base class)
+- [ ] Анонімний клас (Anonymous class)
+- [x] Абстрактний клас (Abstract class)
+
+#### Q79. У контексті ООП, що таке композиція?
+
+- [ ] Композиція — це акт одного об'єкта, який передає іншому об'єкту операцію, що виконується від імені початкового об'єкта.
+- [x] Композиція — це відношення частина/ціле, де об'єкт складається з одного або кількох інших об'єктів, кожен з яких є частиною цілого.
+- [ ] Композиція — це зв'язок, при якому асоціація класу/імені не здійснюється до того, як об'єкт, призначений ім'ям, створюється під час виконання.
+- [ ] Композиція — це процес збору класів, які надають набір послуг для певної області.
+
+#### Q80. Статичний поліморфізм використовує метод \_?
+
+- [x] Перевантаження (Overloading)
+- [ ] Наслідування (Inheritance)
+- [ ] Абстракцію (Abstraction)
+- [ ] Перекриття (Overriding)
+
+#### Q81. Чого не має конкретний клас?
+
+- [ ] Батьків
+- [x] Чистих віртуальних функцій
+- [ ] Атрибутів
+- [ ] Мети
+
+#### Q82. Як динамічне типізування ускладнює усунення несправностей?
+
+- [x] Може бути складно визначити змінні, які мають неправильний тип
+- [ ] Динамічні змінні можуть приймати лише обмежені значення
+- [ ] Для динамічних змінних фіксоване зберігання
+- [ ] Статичні змінні більш гнучкі, ніж динамічні
+
+#### Q83. У чому різниця між раннім і пізнім зв'язуванням?
+
+- [ ] Раннє зв'язування — це коли змінна отримує значення при створенні області видимості. Пізнє зв'язування — це коли змінна отримує значення після виходу з області видимості
+- [ ] Раннє зв'язування — це коли змінна отримує значення при запуску програми. Пізнє зв'язування — це коли змінна отримує значення після того, як програма запущена
+- [ ] Немає різниці. У обох випадках змінні отримують значення, коли програма завершила запуск і працює
+- [x] Раннє зв'язування — це коли змінна отримує своє значення на етапі компіляції. Пізнє зв'язування — це коли змінна отримує значення під час виконання
+
+#### Q84. У чому різниця між інтерфейсом і абстрактним класом?
+
+- [ ] Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати лише один інтерфейс.
+- [ ] Інтерфейси можуть містити код або дані. Абстрактні класи не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
+- [x] Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися тільки від одного абстрактного класу, але може реалізувати необмежену кількість інтерфейсів.
+- [ ] Абстрактні класи можуть містити код або дані. Інтерфейси не містять код або дані. Клас може успадковуватися від декількох абстрактних класів, але може реалізувати тільки один інтерфейс.
+
+#### Q85. Які параметри потрібно передати конструктору класу?
+
+`Оскільки тут не вказана конкретна мова програмування, розглянемо всі мови.`
+
+- [ ] Посилання на підклас (reference to subclass) // Посилання на підклас ніколи не є необхідними, оскільки ви можете просто ініціалізувати підклас і використовувати його об'єкт.
+- [ ] Посилання на базовий клас (reference to base class) // Посилання на базовий клас не потрібні в Java, JavaScript і Python
+- [ ] Посилання на this (reference to this pointer) // Хоча Python і JavaScript можуть вимагати передачі this або self у конструкторі, це не передається у конструктор Java.
+- [x] Нічого (none) // Вище зазначені варіанти неправильні, тому "нічого" є правильним.
+
+#### Q86. Які чотири принципи об'єктно-орієнтованого програмування?
+
+- [ ] маніпуляція, інкапсуляція, успадкування і інверсія залежностей
+- [ ] інверсія залежностей, принцип відкритості/закритості, інкапсуляція і успадкування
+- [ ] розділення інтерфейсів, абстракція, інверсія залежностей і успадкування
+- [x] абстракція, інкапсуляція, наслідування і поліморфізм
+
+#### Q87. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
+
+- [ ] Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
+- [ ] Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
+- [ ] Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
+- [x] Об'єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
+
+#### Q88. Окрім відповідальностей, що ще повинно бути вказано на картках класів-відповідальностей-співпраці (CRC)?
+
+- [ ] Яка мова програмування буде використана.
+- [ ] Програміст, відповідальний за реалізацію.
+- [x] Взаємодіючі класи.
+- [ ] Атрибути.
+
+#### Q89. Яка найкраща назва функції, що виправляє це оцінювання?
+
+- [ ] makeResult()
+- [ ] questionScore()
+- [x] calculateScore()
+- [ ] getAnswers()
+
+#### Q90. Яке відношення найкраще ілюструє відношення абстрактний-конкретний клас?
+
+- [ ] кіт : кошеня
+- [ ] колір : червоний
+- [x] планета : місяць
+- [ ] вантажівка : вікно
+
+#### Q91. Що не може бути використано для поліморфізму?
+
+- [ ] Перевантаження конструкторів (overloading constructors)
+- [ ] Перевантаження членів функцій (overloading member functions)
+- [x] Статичні члени функцій (static member functions)
+- [ ] Перевантаження попередньо визначених операторів (overloading predefined operator)
+
+#### Q92. Скільки рівнів дозволяє багаторівневе наслідування в програмі?
+
+- [ ] тільки 10 рівнів наслідування
+- [ ] стільки рівнів наслідування, скільки потрібно протягом 10 хвилин
+- [x] стільки рівнів наслідування, скільки потрібно
+- [ ] лише стільки рівнів, скільки дозволяє пам'ять, розділена на швидкість процесора
+
+#### Q93. Що таке віртуальний метод?
+
+- [x] метод, який, як ви очікуєте, може бути переписаний у похідних класах
+- [ ] метод, від якого не очікується, що він буде переписаний у похідних класах
+- [ ] приватний метод, від якого не очікується, що він буде переписаний у публічних похідних класах
+- [ ] метод, який існує тимчасово — після використання він перестає використовуватися будь-яким викликом
+
+#### Q94. Що з наведеного не є базовим принципом об'єктно-орієнтованого програмування?
+
+- [ ] Інкапсуляція (Encapsulation)
+- [x] Компіляція (Compilation)
+- [ ] Успадкування (Inheritance)
+- [ ] Поліморфізм (Polymorphism)
+
+[Довідка](https://www.interviewbit.com/blog/principles-of-oops/)
+
+#### Q95. Як відрізняються поведінки і атрибути об'єкта?
+
+- [ ] Поведінка описує динамічні властивості; атрибути є статичними.
+- [x] Атрибути описують стан; поведінки описують зміну.
+- [ ] Атрибути застосовуються тільки до конкретного об'єкта; поведінка застосовується до інших пов'язаних об'єктів.
+- [ ] Поведінки є векторними величинами; атрибути є скалярними.
+
+#### Q96. Наскільки тісно повинні бути зв'язані ваші класи і чому?
+
+- [ ] Слід збільшити зв'язок, щоб покращити залежності між класами.
+- [x] Слід обмежити зв'язок, щоб зменшити залежності між класами.
+- [ ] Слід збільшити зв'язок, щоб члени класу відповідали меті класу.
+- [ ] Слід обмежити зв'язок, щоб члени класу відповідали меті.
+
+#### Q97. Яке твердження найкраще описує клас-друг?
+
+- [ ] Класи-друзі підтримують базовий клас за потреби.
+- [x] Клас-друг може отримувати доступ до приватних і захищених членів класу, в якому він оголошений як друг.
+- [ ] Класи-друзі не мають реалізації.
+- [ ] Клас-друг може отримувати доступ лише до захищених членів класу, до якого він є другом.
+
+[Довідка](https://www.simplilearn.com/tutorials/cpp-tutorial/friend-class-in-cpp/)
+
+#### Q98. Який з наведених прикладів коду демонструє множинне наслідування?
+
+- [ ] `class employee{ }; class stream{ }; class topper{ };`
+- [ ] `class employee{int rating;}; class stream:public employee{ };`
+- [x] `class employee{int rating;}; class stream{int total;}; class topper: employee, stream{ };`
+- [ ] `class employeef{int rating};}: class stream{ }: class topper: public employee{ }:`
+
+#### Q99. Що таке багаторівневе наслідування?
+
+- [ ] клас, який не має більше одного батька.
+- [ ] клас, який не є похідним від іншого похідного об'єкта.
+- [ ] не подвоєння однорівневого наслідування.
+- [x] класи, похідні від інших похідних класів.
+
+[Довідка](https://www.w3schools.com/cpp/cpp_inheritance_multilevel.asp)
+
+#### Q100. Чи можна мати два класи з однаковим ім'ям в одному проекті?
+
+- [ ] Ні, не можна.
+- [ ] Так, якщо їх конструктори різні.
+- [ ] Так, якщо їх методи різні.
+- [x] Так, якщо вони знаходяться в різних просторах імен (namespaces).
+
+#### Q101. Об'єкти передаються за **\_**
+
+- [ ] значенням або посиланням, в залежності від мови програмування
+- [ ] значенням
+- [ ] значенням або посиланням, в залежності від програми
+- [x] посиланням
+
+#### Q102. Якщо мова реалізує лише передачу параметрів за значенням у функції, чи можуть об'єкти, передані як параметри, бути встановлені на нові екземпляри всередині функції і їх нове значення повернутися до виклику?
+
+- [ ] Так, але тільки якщо це посилання, а не примітивний клас.
+- [ ] Так, оскільки значення є посиланням, навіть якщо воно передається за значенням, це можливо.
+- [ ] Ні, ви отримаєте помилку компіляції.
+- [x] Ні, буде ініціалізовано локальну копію, яка буде втрачена, як тільки вона вийде з області видимості.
+
+#### Q103. Що таке інкапсуляція?
+
+- [ ] визначення класів, зосереджуючись на тому, що важливо для мети
+- [x] визначення даних і відповідних методів разом в одному класі
+- [ ] зробити всі методи приватними
+- [ ] використання слів для визначення класів
+
+#### Q104. Що таке метод?
+
+- [x] функція, що асоціюється з даними та поведінкою
+- [ ] те саме, що і функція та підпрограма
+- [ ] набір змінних, що можуть змінюватися з часом
+- [ ] набір інструкцій, розроблений для виконання часто використовуваної операції в програмі який не повертає значень
+
+#### Q105. Який найточніший приклад принципу заміщення Ліскова?
+
+- [ ] A
+ public class Car{
+ }
+ public class FlyingCars extends Car{
+ public void fly(){}
+ }
+ public class Tesla FlyingCar{}
+ public class Honda Car{}
+
+- [ ] B
+ public class Car{
+ public void fly(){}
+ }
+ public class Tesla extends Car{}
+ public class Honda extends Car{}
+
+- [ ] C
+ public class Car{
+ public void fly(){}
+ }
+ public class Tesla Car{}
+ public class Honda Car{}
+
+- [x] D
+ public class Car{
+ }
+ public class FlyingCars extends Car{
+ public void fly(){}
+ }
+ public class Tesla extends FlyingCar{}
+ public class Honda extends Car{}
+
+[Довідка](https://stackoverflow.com/a/44913313/1573267)
+
+#### Q106. Що описує агрегацію?
+
+- [ ] Клас ресурсів
+- [ ] Група методів
+- [x] Колекція об'єктів
+- [ ] Список дітей
+
+#### Q107. Яка вигода від використання ін'єкції залежностей?
+
+- [x] слабке зв'язування (loose coupling)
+- [ ] повторне використання коду
+- [ ] лінива ініціалізація
+- [ ] абстракція даних
+
+#### Q108. Що не може бути використано для поліморфізму?
+
+- [ ] Перевантаження конструкторів (overloading constructors)
+- [ ] Перевантаження членів функцій (overloading member functions)
+- [x] Статичні члени функцій (static member functions)
+- [ ] Перевантаження попередньо визначених операторів (overloading predefined operator)
+
+#### Q109. Екземпляр якого типу класу не може бути створений?
+
+- [ ] Захищений клас (Protected class)
+- [ ] Базовий клас (Base class)
+- [ ] Анонімний клас (Anonymous class)
+- [x] Абстрактний клас (Abstract class)
+
+#### Q110. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
+
+- [ ] Клас повинен мати тільки одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
+- [ ] Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
+- [ ] Багато специфічних для клієнта інтерфейсів краще, ніж один універсальний інтерфейс.
+- [x] Об'єкти в програмі повинні бути замінювані екземплярами своїх підтипів без зміни правильності програми.
+
+#### Q111. Які п'ять шаблонів створення з шаблону "Банди чотирьох (Gang of Four)" ?
+
+- [ ] Observer, State, Strategy, Template Method, і Visitor.
+- [ ] Composite, Visitor, State, Prototype, і Singleton.
+- [ ] Composite, Builder, Factory Method, Prototype, і Singleton.
+- [x] Abstract Factory, Builder, Factory Method, Prototype, і Singleton.
+
+#### Q112. Яка різниця між інтерфейсом і абстрактним класом?
+
+- [ ] Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
+- [ ] Інтерфейси можуть містити код або дані. Абстрактні класи не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
+- [x] Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати лише один абстрактний клас, але може реалізувати необмежену кількість інтерфейсів.
+- [ ] Абстрактні класи можуть містити код або дані. Інтерфейси не містять коду або даних. Клас може успадковувати більше одного абстрактного класу, але може реалізувати лише один інтерфейс.
+
+#### Q113. Який зв'язок найкраще ілюструє відносини абстрактного і конкретного класу?
+
+- [ ] кіт : кошеня
+- [ ] колір : червоний
+- [x] планета : місяць
+- [ ] вантажівка : вікно
+
+#### Q114. Яка перевага використання ін'єкції залежностей?
+
+- [x] слабка зв'язаність
+- [ ] повторне використання коду
+- [ ] лінива ініціалізація
+- [ ] абстракція даних
+
+#### Q115. **\_** описує агрегацію
+
+- [ ] Клас ресурсів
+- [ ] Група методів
+- [x] Колекція об'єктів
+- [ ] Список дітей
+
+#### Q116. Який тип функцій можна використовувати для поліморфізму?
+
+- [x] віртуальна функція
+- [ ] вбудована функція
+- [ ] не визначена функція
+- [ ] приватна функція
+
+#### Q117. Яка перевага використання ін'єкції залежностей?
+
+- [x] слабка зв'язаність
+- [ ] повторне використання коду
+- [ ] лінива ініціалізація
+- [ ] абстракція даних
+
+#### Q118. Чи потрібно повернути об'єкт, якщо він був переданий за посиланням у функцію, і чому або чому ні?
+
+- [ ] Так, функція виклику повинна відобразити зміни.
+- [ ] Ні, слід використовувати глобальну змінну.
+- [x] Ні, зміни автоматично відобразяться у функції виклику.
+- [ ] Так, об'єкт повинен бути таким же у функції виклику.
+
+#### Q119. З принципів SOLID об'єктно-орієнтованого програмування, яке твердження найкраще описує принцип заміщення Ліскова?
+
+- [ ] Клас повинен мати лише одну відповідальність — тобто тільки зміни в одній частині специфікації програмного забезпечення повинні впливати на специфікацію класу.
+- [ ] Програмні сутності повинні бути відкриті для розширення, але закриті для модифікації.
+- [ ] Багато специфічних для клієнтів інтерфейсів краще ніж один універсальний інтерфейс.
+- [x] об'єкти в програмі повинні бути замінювані екземплярами їх підтипів без порушення коректності програми.
+
+#### Q120. Окрім відповідальностей, що ще повинно бути вказано на картках Class-responsability-collaboration (CRC)?
+
+- [ ] Яка мова програмування буде використана.
+- [ ] Програміст, відповідальний за реалізацію.
+- [x] Взаємодіючі класи.
+- [ ] Атрибути.
+
+#### Q121. Яка найкраща назва для функції, що виправляє цю оцінку?
+
+- [ ] makeResult()
+- [ ] questionScore()
+- [x] calculateScore()
+- [ ] getAnswers()
+
+#### Q122. Хто винайшов ООП?
+
+- [ ] Андреа Ферро
+- [ ] Адель Голдберг
+- [x] Алан Кей
+- [ ] Денис Річі