Топ 50 въпроса и отговора за интервюта за OOPs (2025)
Ето въпроси и отговори за интервю за OOP за по-свежи и опитни кандидати, за да получат мечтаната работа.
1) Какво е OOPS?
OOPS е съкратено като система за обектно ориентирано програмиране, в която програмите се разглеждат като колекция от обекти. Всеки обект не е нищо друго освен екземпляр на клас.
2) Напишете основни понятия на OOPS?
Следват концепциите на OOPS:
- абстракция
- Капсулирането
- наследяване
- полиморфизъм
Безплатно изтегляне на PDF: Въпроси и отговори за OOPs интервю
3) Какво е клас?
Класът е просто представяне на тип обект. Това е чертежът/планът/шаблонът, който описва детайлите на даден обект.
4) Какво е обект?
Обектът е екземпляр на клас. Има свое собствено състояние, поведение и идентичност.
5) Какво е капсулиране?
Капсулацията е атрибут на обект и съдържа всички данни, които са скрити. Тези скрити данни могат да бъдат ограничени до членовете на този клас.
Нивата са публични, защитени, частни, вътрешни и защитени вътрешни.
6) Какво е полиморфизъм?
Полиморфизмът не е нищо друго освен присвояване на поведение или стойност в подклас на нещо, което вече е декларирано в основния клас. Просто полиморфизмът има повече от една форма.
7) Какво е наследство?
Наследяването е концепция, при която един клас споделя структурата и поведението, дефинирани в друг клас. Ако наследяването, приложено към един клас, се нарича единично наследяване и ако зависи от множество класове, тогава се нарича множествено наследяване.
8) Какво представляват манипулаторите?
Манипулаторите са функциите, които могат да се използват заедно с операторите за вмъкване (<<) и извличане (>>) на обект. Примери за това са endl и setw.
9) Обяснете понятието конструктор
Конструкторът е метод, използван за инициализиране на състоянието на обект и се извиква по време на създаването на обекта. Правилата за конструктора са:
- Името на конструктора трябва да е същото като името на класа.
- Конструкторът не трябва да има тип връщане.
10) Дефиниране на деструктор?
Деструкторът е метод, който се извиква автоматично, когато обектът е направен от обхват или унищожен. Името на деструктора също е същото като името на класа, но със символа тилда преди името.
11) Какво е Inline функция?
Вградената функция е техника, използвана от компилаторите и инструктира да се вмъкне пълно тяло на функцията, където и да се използва тази функция в изходния код на програмата.
12) Какво е виртуална функция?
Виртуалната функция е функция член на клас и нейната функционалност може да бъде заменена в нейния производен клас. Тази функция може да бъде реализирана чрез използване на ключова дума, наречена 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 е защитен и е достъпен само чрез този клас или от производен клас.
19) Какви са различните видове аргументи?
Параметърът е променлива, използвана по време на декларирането на функцията или подпрограмата, и аргументите се предават на тялото на функцията и трябва да съвпада с дефинирания параметър. Има два вида аргументи.
- Извикване по стойност – Предадената стойност ще бъде модифицирана само вътре във функцията и връща същата стойност, каквато и да е предадена на функцията.
- Извикване по референция – Предадената стойност ще бъде променена както вътре, така и извън функциите и връща същата или различна стойност.
20) Коя е ключовата дума super?
Ключовата дума super се използва за извикване на заменения метод, който замества един от неговите методи на суперклас. Тази ключова дума позволява достъп до заместени методи, а също и достъп до скрити членове на суперкласа.
Той също така препраща извикване от конструктор към конструктор в суперкласа.
21) Какво е отмяна на метода?
Замяната на метода е функция, която позволява на подклас да осигури внедряването на метод, който заменя основния клас. Той ще замени изпълнението в суперкласа, като предостави същото име на метод, същия параметър и същия тип на връщане.
22) Какво е интерфейс?
Интерфейсът е колекция от абстрактен метод. Ако класът имплементира интерфейс, той по този начин наследява всички абстрактни методи на интерфейс.
Java използва интерфейс за прилагане на множество наследявания.
23) Какво е обработка на изключения?
Изключение е събитие, което се случва по време на изпълнение на програма. Изключенията могат да бъдат от всякакъв тип – изключение по време на изпълнение, изключения за грешка. Тези изключения се обработват адекватно чрез механизъм за обработка на изключения като ключови думи try, catch и throw.
24) Какво представляват токените?
Компилаторът разпознава токен и той не може да бъде разбит на съставни елементи. Ключови думи, идентификатори, константи, низови литерали и оператори са примери за токени.
Дори препинателните знаци също се считат за токени. Пример: Скоби, запетаи, фигурни скоби и скоби.
25) Каква е основната разлика между претоварване и замяна?
Претоварването е статично обвързване, докато замяната е динамично обвързване. Претоварването не е нищо друго освен един и същ метод с различни аргументи и може или не може да върне равна стойност в същия клас.
Замяната е едни и същи имена на методи със същите аргументи и връщани типове, свързани с класа и неговия дъщерен клас.
26) Каква е основната разлика между клас и обект?
Обектът е екземпляр на клас. Обектите съдържат множество информация, но класовете нямат никаква информация. Дефинирането на свойства и функции може да се направи в клас и може да се използва от обекта.
Един клас може да има подкласове, докато обектът няма подобекти.
27) Какво е абстракция?
Абстракцията е полезна функция на OOPS и показва само необходимите детайли на клиента за даден обект. Това означава, че показва само необходимите детайли за обект, а не вътрешните конструктори на обект. Пример – Когато искате да включите телевизора, не е необходимо да знаете вътрешната схема/механизъм, необходим за включване на телевизора. Всичко, което е необходимо за включване на телевизора, ще бъде показано с помощта на абстрактен клас.
28) Какви са модификаторите за достъп?
Модификаторите за достъп определят обхвата на метода или променливите, които могат да бъдат достъпни от други различни обекти или класове. Има пет вида модификатори за достъп и те са както следва:
- частен
- Защитена
- Обществен
- Приятел
- Защитен приятел
29) Какво представляват запечатаните модификатори?
Запечатаните модификатори са модификаторите за достъп, при които методите не могат да го наследят. Запечатаните модификатори могат също да се прилагат към свойства, събития и методи. Този модификатор не може да се използва за статични членове.
30) Как можем да извикаме основния метод, без да създаваме екземпляр?
Да, възможно е да извикате базовия метод, без да създавате екземпляр. И този метод трябва да бъде „Статичен метод“.
Правене на наследяване от този клас. - Използвайте основна ключова дума от производен клас.
31) Каква е разликата между new и override?
Новият модификатор инструктира компилатора да използва новата реализация вместо функцията на базовия клас. Докато модификаторът Override помага да се замени функцията на базовия клас.
32) Какви са различните видове конструктори?
Има три вида конструктори:
– Конструктор по подразбиране – Без параметри.
– Параметричен конструктор – С параметри. Създайте нов екземпляр на клас и също така предавайте аргументи едновременно.
– Конструктор за копиране – Който създава нов обект като копие на съществуващ обект.
33) Какво е ранно и късно обвързване?
Ранното свързване се отнася до присвояването на стойности на променливи по време на проектиране, докато късното свързване се отнася до присвояването на стойности на променливи по време на изпълнение.
34) Какво е указател „това“?
ТОЗИ указател се отнася до текущия обект на клас. ТАЗИ ключова дума се използва като указател, който прави разлика между текущия обект и глобалния обект. Отнася се за текущия обект.
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) Дали статичният метод може да използва нестатични членове?
False.
44) Какво представляват базов клас, подклас и суперклас?
Базовият клас е най-обобщеният клас и се нарича коренен клас.
Подкласът е клас, който наследява от един или повече базови класове.
Суперкласът е родителският клас, от който друг клас наследява.
45) Какво е статично и динамично обвързване?
Свързването не е нищо друго освен свързване на име с класа. Статичното обвързване е обвързване, при което името може да бъде свързано с класа по време на компилация и се нарича още ранно обвързване.
Динамичното обвързване е обвързване, при което името може да бъде свързано с класа по време на времето за изпълнение, и се нарича още късно обвързване.
46) Колко екземпляра могат да бъдат създадени за абстрактен клас?
За абстрактен клас ще бъдат създадени нула екземпляри. С други думи, не можете да създадете екземпляр на абстрактен клас.
47) Коя ключова дума може да се използва за претоварване?
Ключовата дума оператор се използва за претоварване.
48) Какъв е спецификаторът за достъп по подразбиране в дефиниция на клас?
Спецификаторът за частен достъп се използва в дефиниция на клас.
49) Коя OOPS концепция се използва като механизъм за повторно използване?
Наследяването е концепцията на OOPS, която може да се използва като механизъм за повторно използване.
50) Коя OOPS концепция излага само необходимата информация на извикващите функции?
Капсулирането
Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)
Въпрос № 16 е с грешен отговор.
Абстрактен клас може също да съдържа не-абстрактен метод.
Абхинав е прав..
Един абстрактен клас може да има както абстрактни, така и неабстрактни методи. Минимум един абстрактен метод е задължителен..
Благодаря, корекцията е направена.
C++ поддържа ли 5 типа спецификатор за достъп?
Не, мисля, че само 3...частен, публичен, защитен. Останалите две предполагам са за Java
Модификаторът на Zarish Alam има шест незащитени акаунта
не, мисля, че само три вида
Минимум един абстрактен метод е задължителен – грешно е... Можем да създадем абстрактен клас без никакви абстрактни методи в него, просто се уверете, че не е инстанциран.
благодаря, това помага много
Благодаря Манодж Кумар
Моля, прочетете го докрай. това условие е приложимо само в java.
брато всъщност, ако направиш метода си като абстракт, трябва да направиш класа си като абстракт, но ако направиш класа си като абстракт, не е задължително методите да бъдат абстракти. благодаря
само в абстрактния клас на Java има само абстрактен метод не за всички
Благодаря ви, беше много полезно
откъде знаеш в #15, че стойността за a и b е съответно 1.2 и 6??
това са стойностите, предадени му
Благодарим Ви
Наистина добре, полезно !!! Благодаря на кариерен гуру!!
Благодаря
Благодаря на кариерния гуру
Отговорът на последния въпрос не. 50 – Коя OOPS концепция излага само необходимата информация на извикващите функции? Абстракцията е грешна. Вместо това трябва да е капсулиране. Скриването на данни се отнася до капсулиране, а не до абстракция. Абстракцията е начин за проектиране на кода.
Грешка отстранена! благодаря
Свързаният въпрос от теста все още казва Абстракция.
коригирана
Абстракцията е верният отговор. капсулирането е свързването на данни и функции с обект. Въпреки че капсулирането скрива данни от останалата част от програмата, въпросът не е за това.
Моля, коригирайте го
благодаря за тази помощ
това е много полезно за основните слаби
Въпрос № 4, можете ли да проверите отговора веднъж, моля. Почувствайте, че формирането на изреченията трябва да бъде коригирано.
Грешка отстранена! благодаря
Благодаря, полезно е
Въпрос №16
Абстрактният клас може да има както абстрактен, така и неабстрактен метод в java. ако декларирате абстрактен метод, е задължително да декларирате клас като абстрактен, но когато декларирате клас като абстрактен, не е задължително да декларирате метод като абстрактен в java.
Абстрактен клас може да съдържа само абстрактен метод. така ли е
ако не греша, може да съдържа както абстрактен метод, така и неабстрактен метод.
В отговор на 31-ви въпрос new е оператор, а не модификатор....
new не е оператор.
Въпрос № 36 е с грешен отговор. Модификаторът за достъп по подразбиране за клас е вътрешен, но не е частен
Мисля, че отговорът на въпрос №50 е Абстракция
според мен отговорът за 50 трябва да е абстракция.
Искам това като PDF файл
Входяща поща или имейл
Какъв е модификаторът за достъп по подразбиране в клас?
-Правилният отговор е публичен. Моля, актуализирайте.
Това е лично.
не, частно е
Модификаторът за достъп по подразбиране в клас е ”Private”.
отговорът е правилен, модификаторът за достъп по подразбиране е частен, няма нужда от актуализиране
отговорът е правилен, той е само частен.
Модификаторът за достъп по подразбиране е частен в клас
Не съм 100% това е правилно.
Модификаторът за достъп по подразбиране на класа е частен в c++ и е публичен в java
По-лесно е за разбиране
Благодаря ви, беше много полезно, любезно моля за корекция
Какъв е модификаторът за достъп по подразбиране в клас?
-Правилният отговор е публичен. Моля, актуализирайте.
Наистина страхотно, полезно
Благодаря
Модификаторът за достъп по подразбиране на клас е вътрешен.
Модификаторът за достъп по подразбиране на член на класа е частен.
Моля, поправете го…….
Благодаря за писането. Преглежда се и се коригира.
Коя OOPS концепция излага само необходимата информация на извикващите функции?
Абстракцията е верният отговор…..Тя показва само необходимата информация.
Капсулация Скрийте важните данни от крайния потребител.
Благодаря, че е по-полезно за нас
вашите бележки са много доволни, но трябва да подготвите кодове с техните решения. благодаря за вашите лекции
Вътрешен за клас и частен за член на класа. Така че отговорът е частично правилен.
Модификаторът за достъп по подразбиране за всички класове от най-високо ниво, включително нормален клас, е ВЪТРЕШЕН, а не публичен или частен.
Вие сте страхотен господине
Моля, сър следващия Най-популярни въпроси за
1. Преден край
2. Бекенд
3. Приложение за Android 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏♥️♥️♥️♥️ ♥️♥️♥️♥️♥️🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
4 пилера на oop са значими, как и ако пропуснем който и да е 2 от пилера какъв ефект ще има върху oop? pls pls pls отговор за просто изявление
това е голяма помощ, пълно благодаря
Много е полезно благодаря.
Отговорът на 50-ия въпрос е правилен или трябва да е абстракция??
Мисля, че последният отговор трябва да бъде абстракция, а не капсулиране
Мисля, че 50-та е грешна..
трябва да е абстракция (не капсулиране)
трябва да е капсулиране, защото крием подробности за други класове.
просто пробен период за XSS
Това се тества тук сега
ques 16) Един абстрактен клас може да съдържа както абстрактни, така и неабстрактни методи.
абстрактен клас има както абстрактен, така и неабстрактен в c, python, но в java абстрактния клас има само абстрактен метод
Благодаря за доброто предложение за информацията за oop езика
Много е полезно, благодаря!!
абстрактен клас има както абстрактен, така и неабстрактен в c, python, но в java абстрактния клас има само абстрактен метод
Благодаря много!!
14) Какво представлява претоварването на функциите?
>> Претоварването на функции е обичайна функция, но може да изпълнява различни задачи
Не, това е грешно. Функцията изпълнява абсолютно същата задача. единствената разлика е броят или типът на параметрите.
Ако функцията е наречена „Добавяне“, тогава трябва да добавя, независимо от сигнатурата на функцията.
Поздравления, много е полезно
необходима е една чиста функция
благодаря за тези въпроси. Помага ми да си спомня всичките си концепции.