50 найпопулярніших запитань і відповідей на інтерв’ю для OOP (2025)
Ось питання та відповіді на співбесіду для нових і досвідчених кандидатів, щоб отримати роботу своєї мрії.
1) Що таке OOPS?
OOPS скорочено називається системою об'єктно-орієнтованого програмування, в якій програми розглядаються як набір об'єктів. Кожен об'єкт є не що інше, як екземпляр класу.
2) Напишіть основні поняття OOPS?
Нижче наведено концепції OOPS:
- Абстракція
- Інкапсуляція
- Спадкування
- Поліморфізм
Безкоштовне завантаження у форматі PDF: Запитання та відповіді на інтерв’ю OOPs
3) Що таке клас?
Клас - це просто представлення типу об'єкта. Це проект/план/шаблон, який описує деталі об’єкта.
4) Що таке об’єкт?
Об’єкт – це екземпляр класу. Він має власний стан, поведінку та ідентичність.
5) Що таке інкапсуляція?
Інкапсуляція є атрибутом об'єкта, і він містить усі приховані дані. Ці приховані дані можуть бути обмежені членами цього класу.
Рівні відкриті, захищені, приватні, внутрішні та захищені внутрішні.
6) Що таке поліморфізм?
Поліморфізм - це не що інше, як присвоєння поведінки або значення в підкласі чомусь, що вже було оголошено в основному класі. Просто поліморфізм має кілька форм.
7) Що таке спадкування?
Успадкування — це концепція, де один клас поділяє структуру та поведінку, визначені в іншому класі. Якщо успадкування, застосоване до одного класу, називається єдиним успадкуванням, а якщо воно залежить від кількох класів, то воно називається множинним успадкуванням.
8) Що таке маніпулятори?
Маніпулятори — це функції, які можна використовувати в поєднанні з операторами вставки (<<) і вилучення (>>) об’єкта. Прикладами є endl і setw.
9) Поясніть термін конструктор
Конструктор — це метод, який використовується для ініціалізації стану об’єкта, і він викликається під час створення об’єкта. Правила для конструктора:
- Назва конструктора має збігатися з назвою класу.
- Конструктор не повинен мати тип повернення.
10) Визначити деструктор?
Деструктор — це метод, який автоматично викликається, коли об’єкт вичерпується або знищується. Назва деструктора також збігається з назвою класу, але з символом тильда перед назвою.
11) Що таке вбудована функція?
Вбудована функція — це техніка, яка використовується компіляторами та вказує на вставлення повного тіла функції скрізь, де ця функція використовується у вихідному коді програми.
12) Що таке віртуальна функція?
Віртуальна функція є функцією-членом класу, і її функціональність може бути замінена в похідному класі. Цю функцію можна реалізувати за допомогою ключового слова під назвою virtual, яке можна вказати під час оголошення функції.
Віртуальна функція може бути оголошена за допомогою маркера (virtual) у C++. Це може бути досягнуто мовою C/Python за допомогою покажчиків на функції або покажчиків на функцію.
13) Що таке функція друга?
Функція друга — це друг класу, якому дозволено доступ до загальнодоступних, приватних або захищених даних у цьому самому класі. Якщо функція визначена поза класом, вона не може отримати доступ до такої інформації.
Друга можна оголосити будь-де в декларації класу, і на нього не можуть впливати ключові слова керування доступом, такі як private, public або protected.
14) Що таке перевантаження функцій?
Перевантаження функції є звичайною функцією, але їй призначається кілька параметрів. Дозволяє створювати декілька методів з однаковою назвою, які відрізняються один від одного типом введення та виведення функції.
Приклад
void add(int& a, int& b); void add(double& a, double& b); void add(struct bob& a, struct bob& b);
15) Що таке перевантаження оператора?
Перевантаження операторів — це функція, де застосовуються різні оператори та залежить від аргументів. Оператор,-,* можна використовувати для проходу через функцію, і він має власний пріоритет для виконання
16) Що таке абстрактний клас?
Абстрактний клас — це клас, екземпляр якого неможливо створити. Створення об’єкта неможливо за допомогою абстрактного класу, але його можна успадкувати. Абстрактний клас може містити лише абстрактний метод. Java допускає лише абстрактний метод в абстрактному класі, тоді як інші мови також допускають неабстрактний метод.
17) Що таке тернарний оператор?
Тернарний оператор називається оператором, який приймає три аргументи. Аргументи та результати мають різні типи даних, і це залежить від функції. Тернарний оператор також називають умовним оператором.
18) Яке використання методу finalize?
Метод Finalize допомагає виконувати операції очищення ресурсів, які зараз не використовуються. Метод Finalize захищений і доступний лише через цей клас або похідний клас.
19) Які є різні типи аргументів?
Параметр — це змінна, яка використовується під час оголошення функції або підпрограми, а аргументи передаються в тіло функції, і воно має збігатися з визначеним параметром. Є два типи аргументів.
- Виклик за значенням – передане значення буде змінено лише всередині функції, і воно повертає те саме значення, яке б воно не було передане у функцію.
- Виклик за посиланням – передане значення буде змінено як усередині, так і поза функціями, і воно повертає те саме або інше значення.
20) Що таке ключове слово super?
Ключове слово super використовується для виклику перевизначеного методу, який замінює один із методів суперкласу. Це ключове слово дозволяє отримати доступ до перевизначених методів, а також отримати доступ до прихованих членів суперкласу.
Він також перенаправляє виклик від конструктора до конструктора в суперкласі.
21) Що таке перевизначення методу?
Перевизначення методу — це функція, яка дозволяє підкласу забезпечити реалізацію методу, який перевизначає в основному класі. Він замінить реалізацію в суперкласі, надаючи ту саму назву методу, той самий параметр і той самий тип повернення.
22) Що таке інтерфейс?
Інтерфейс — це набір абстрактних методів. Якщо клас реалізує інтерфейс, він таким чином успадковує всі абстрактні методи інтерфейсу.
Java використовує інтерфейс для реалізації множинного успадкування.
23) Що таке обробка винятків?
Винятком є подія, що відбувається під час виконання програми. Винятки можуть бути будь-якого типу – винятки під час виконання, винятки помилок. Ці винятки належним чином обробляються за допомогою механізму обробки винятків, наприклад ключових слів try, catch і throw.
24) Що таке жетони?
Компілятор розпізнає маркер, і його неможливо розбити на складові елементи. Прикладами токенів є ключові слова, ідентифікатори, константи, рядкові літерали та оператори.
Навіть знаки пунктуації також вважаються лексемами. Приклад: дужки, коми, дужки та дужки.
25) Яка головна відмінність між перевантаженням і перевизначенням?
Перевантаження є статичним зв’язуванням, тоді як перевизначення є динамічним зв’язуванням. Перевантаження — це не що інше, як той самий метод з різними аргументами, і він може повертати або не повертати однакове значення в тому самому класі.
Перевизначення — це однакові імена методів з однаковими аргументами та типами повернення, пов’язаними з класом і його дочірнім класом.
26) Яка головна відмінність між класом і об'єктом?
Об’єкт – це екземпляр класу. Об’єкти містять багато інформації, але класи не мають жодної інформації. Визначення властивостей і функцій може бути зроблено в класі та може використовуватися об’єктом.
Клас може мати підкласи, тоді як об’єкт не має підоб’єктів.
27) Що таке абстракція?
Абстракція є корисною функцією OOPS, і вона показує клієнту лише необхідні деталі об’єкта. Це означає, що він показує лише необхідні деталі для об’єкта, а не внутрішні конструктори об’єкта. Приклад. Коли ви хочете ввімкнути телевізор, не обов’язково знати внутрішню схему/механізм, необхідний для ввімкнення телевізора. Все, що потрібно для ввімкнення телевізора, буде показано за допомогою абстрактного класу.
28) Що таке модифікатори доступу?
Модифікатори доступу визначають область дії методу або змінних, до яких можна отримати доступ з інших об’єктів або класів. Існує п’ять типів модифікаторів доступу, і вони такі:
- приватний
- захищений
- громадськості
- Друг
- Захищений друг
29) Що таке запечатані модифікатори?
Запечатані модифікатори — це модифікатори доступу, де методи не можуть його успадкувати. Запечатані модифікатори також можна застосовувати до властивостей, подій і методів. Цей модифікатор не можна використовувати для статичних елементів.
30) Як ми можемо викликати базовий метод без створення екземпляра?
Так, можна викликати базовий метод без створення екземпляра. І цей метод має бути «Статичним методом».
Спадкування від цього класу. Використовуйте базове ключове слово від похідного класу.
31) Яка різниця між новим і перевизначеним?
Новий модифікатор наказує компілятору використовувати нову реалізацію замість функції базового класу. Тоді як модифікатор Override допомагає перевизначати функцію базового класу.
32) Які бувають різні типи конструкторів?
Існує три типи конструкторів:
– Конструктор за замовчуванням – без параметрів.
– Параметричний конструктор – з параметрами. Створити новий екземпляр класу та одночасно передати аргументи.
– Конструктор копіювання – створює новий об’єкт як копію існуючого об’єкта.
33) Що таке раннє і пізнє зв'язування?
Раннє зв’язування стосується призначення значень змінним під час проектування, тоді як пізнє зв’язування стосується призначення значень змінним під час виконання.
34) Що таке покажчик «це»?
ЦЕЙ покажчик посилається на поточний об’єкт класу. Ключове слово THIS використовується як вказівник, який розрізняє поточний об’єкт від глобального об’єкта. Він посилається на поточний об'єкт.
35) Яка різниця між структурою та класом?
За замовчуванням тип доступу до структури є відкритим, але тип доступу до класу є приватним. Структура використовується для групування даних, тоді як клас може використовуватися для групування даних і методів. Структури використовуються виключно для даних, і це не вимагає суворої перевірки, але класи використовуються для інкапсуляції та власних даних, які потребують суворої перевірки.
36) Який модифікатор доступу за замовчуванням у класі?
Типовим модифікатором доступу для класу є Internal, а модифікатором доступу за умовчанням члена класу є Private.
37) Що таке чиста віртуальна функція?
Чиста віртуальна функція — це функція, яка може бути перевизначена в похідному класі, але не може бути визначена. Віртуальна функція може бути оголошена як Pure за допомогою оператора =0.
Приклад -
Virtual void function1() // Virtual, Not pure Virtual void function2() = 0 //Pure virtual
38) Які всі оператори не можна перевантажувати?
Нижче наведено оператори, які не можна перевантажувати -.
- Роздільна здатність обсягу (::)
- Вибір учасників (.)
- Вибір члена через покажчик на функцію (.*)
39) Що таке динамічний поліморфізм або поліморфізм часу виконання?
Динамічний поліморфізм або поліморфізм часу виконання також відомий як перевизначення методу, у якому виклик перевизначеної функції вирішується під час виконання, а не під час компіляції. Це означає наявність двох або більше методів з однаковою назвою, однаковою сигнатурою, але з різною реалізацією.
40) Чи потрібен нам параметр для конструкторів?
Ні, нам не потрібен параметр для конструкторів.
41) Що таке конструктор копіювання?
Це спеціальний конструктор для створення нового об'єкта як копії існуючого об'єкта. Завжди буде лише один конструктор копіювання, який може бути визначений користувачем або системою.
42) Що означає ключове слово virtual у визначенні методу?
Це означає, що ми можемо перевизначити метод.
43) Чи може статичний метод використовувати нестатичні елементи?
Помилковий.
44) Що таке базовий клас, підклас і суперклас?
Базовий клас є найбільш узагальненим класом, і його називають кореневим класом.
Підклас — це клас, який успадковує один або більше базових класів.
Суперклас — це батьківський клас, від якого успадковується інший клас.
45) Що таке статичне та динамічне зв'язування?
Зв'язування - це не що інше, як асоціація імені з класом. Статичне зв’язування — це зв’язування, ім’я якого може бути пов’язане з класом під час компіляції, і воно також називається раннім зв’язуванням.
Динамічне зв’язування — це зв’язування, ім’я якого може бути пов’язане з класом під час виконання, і воно також називається пізнім зв’язуванням.
46) Скільки екземплярів можна створити для абстрактного класу?
Для абстрактного класу буде створено нуль екземплярів. Іншими словами, ви не можете створити екземпляр абстрактного класу.
47) Яке ключове слово можна використати для перевантаження?
Ключове слово оператора використовується для перевантаження.
48) Що таке специфікатор доступу за замовчуванням у визначенні класу?
Специфікатор приватного доступу використовується у визначенні класу.
49) Яка концепція OOPS використовується як механізм повторного використання?
Наслідування — це концепція OOPS, яку можна використовувати як механізм повторного використання.
50) Яка концепція OOPS надає лише необхідну інформацію функціям виклику?
Інкапсуляція
Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)
Питання № 16 має неправильну відповідь.
Абстрактний клас також може містити неабстрактний метод.
Абхінав правий..
Абстрактний клас може мати як абстрактні, так і неабстрактні методи. Мінімум один абстрактний метод є обов’язковим.
Дякую, виправлення зроблено.
Чи підтримує C++ 5 типів специфікатора доступу?
Ні, я думаю, лише 3…приватний, державний, захищений. Решта два, я думаю, для Java
Аксессор Zarish Alam Modifier має шість незахищених облікових записів
ні, я думаю, лише три типи
Мінімум один абстрактний метод є обов’язковим – це неправильно. Ми можемо створити абстрактний клас без будь-яких абстрактних методів у ньому, просто переконайтеся, що він не створений.
дякую, це дуже допомагає
Дякую, Манодж Кумар
Будь ласка, прочитайте його повністю. ця умова застосовна лише в java.
Брате насправді, якщо ви робите свій метод абстрактним, ви повинні зробити свій клас абстрактним, але якщо ви робите свій клас абстрактним, то не обов’язково робити методи абстрактними. дякую
лише в абстрактному класі Java є лише абстрактний метод не для всіх
Дякую, це було дуже корисно
як ви знаєте в #15, що значення для a і b дорівнює 1.2 і 6 відповідно??
це значення, передані йому
Дякую
Дуже добре, корисно!!! Дякую гуру кар'єри!!
Дякую
Дякую гуру кар'єри
Відповідь на останнє запитання – ні. 50 – Яка концепція OOPS надає лише необхідну інформацію функціям виклику? Абстракція неправильна. Натомість має бути інкапсуляція. Приховування даних відноситься до інкапсуляції, а не до абстракції. Абстракція - це спосіб проектування коду.
Помилка виправлена! дякую
У пов’язаному питанні вікторини все ще вказано «Абстракція».
виправлений
Абстракція - правильна відповідь. інкапсуляція - це асоціація даних і функцій з об'єктом. Хоча інкапсуляція приховує дані від решти програми, питання не в цьому.
будь ласка, виправте це
дякую за цю допомогу
це дуже корисно для тих, хто починає худіти
Питання № 4, перевірте відповідь один раз, будь ласка. Відчуйте, що формування речень потребує виправлення.
Помилка виправлена! дякую
Дякую, це корисно
Питання №.16
Абстрактний клас може мати як абстрактний, так і неабстрактний метод у java. якщо ви оголошуєте абстрактний метод, оголошувати клас як абстрактний обов’язково, але коли оголошуєте клас як абстрактний, не обов’язково оголошувати метод як абстрактний у java.
Абстрактний клас може містити лише абстрактний метод. чи це?
якщо я не помиляюся, він може містити абстрактний метод, а також не абстрактний метод.
У відповіді на 31 запитання new — це оператор, а не модифікатор….
new не є оператором.
На запитання №36 неправильна відповідь. Модифікатор доступу за замовчуванням для класу є внутрішнім, але не приватним
Я вважаю, що відповідь на запитання №50 – абстракція
на мій погляд, відповіддю на 50 має бути абстракція.
Я хочу це як файл PDF
Надішліть мені або напишіть мені
Що таке модифікатор доступу за замовчуванням у класі?
- Правильна відповідь є публічною. Будь ласка, оновіть.
Це приватне.
ні, це приватно
Типовим модифікатором доступу в класі є «Приватний».
відповідь правильна, модифікатор доступу за замовчуванням приватний, не потребує оновлення
відповідь правильна, лише приватна.
Модифікатор доступу за замовчуванням є приватним у класі
Я не на 100% вірю, що це правильно.
Модифікатор доступу за замовчуванням для класу є приватним у c++ і публічним у java
Це легше зрозуміти
Дякую, це було дуже корисно. Внесіть виправлення
Що таке модифікатор доступу за замовчуванням у класі?
- Правильна відповідь є публічною. Будь ласка, оновіть.
Справді чудово, корисно
Дякую
Типовим модифікатором доступу для класу є внутрішній.
Типовим модифікатором доступу члена класу є приватний.
Будь ласка, виправте…….
Дякую, що написали. Його переглядають і виправляють.
Яка концепція OOPS надає функціям виклику лише необхідну інформацію?
Абстракція – це правильна відповідь… Вона показує лише необхідну інформацію.
Інкапсуляція приховує важливі дані від кінцевого користувача.
Дякую, це корисніше для нас
ваші нотатки дуже раді, але ви повинні підготувати коди з їхніми рішеннями. дякую за ваші лекції
Внутрішній для класу та приватний для члена класу. Отже, відповідь частково правильна.
Типовим модифікатором доступу для всіх класів верхнього рівня, включаючи звичайний клас, є INTERNAL, а не public або private.
Ви великий сер
Будь ласка, сер наступний Найпопулярніші запитання про
1. Інтерфейс
2. Бекенд
3. Додаток для Android 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏♥️♥️♥️♥️ ♥️♥️♥️♥️♥️🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
4 піллери oop важливі, як, і якщо ми опустимо будь-які 2 з піллерів, який вплив це матиме на oop? будь ласка, будь ласка, дайте відповідь на просте твердження
це дуже велика допомога, дякую
Це дуже корисно, дякую.
Відповідь на 50-е запитання правильна чи це має бути абстракція??
Я думаю, що остання відповідь має бути абстракцією, а не інкапсуляцією
Я вважаю, що 50 - неправильно..
це має бути абстракція (а не інкапсуляція)
це має бути інкапсуляція, оскільки ми приховуємо деталі для інших класів.
просто пробна версія для XSS
Це тестування тут зараз
ques 16) Абстрактний клас може містити як абстрактні, так і неабстрактні методи.
абстрактний клас має як абстрактний, так і не абстрактний у c, python, але в абстрактному класі java є лише абстрактний метод
Дякую за гарну пропозицію щодо інформації про мову oop
Це дуже корисно, дякую!!
абстрактний клас має як абстрактний, так і не абстрактний у c, python, але в абстрактному класі java є лише абстрактний метод
Дуже дякую !!
14) Що таке перевантаження функцій?
>> Перевантаження функцій є звичайною функцією, але вона може виконувати різні завдання
Ні, це неправильно. Функція виконує точно таке ж завдання. єдина різниця полягає в кількості або типі параметрів.
Якщо функція має назву «Додати», вона повинна додати, незалежно від сигнатури функції.
Вітаю, це дуже корисно
потрібна одна чиста функція
Дякую за ці запитання. Це допомагає мені згадати всі мої концепції.