Топ 50 въпроса и отговора за интервюта за OOPs (2025)

Ето въпроси и отговори за интервю за OOP за по-свежи и опитни кандидати, за да получат мечтаната работа.

1) Какво е OOPS?

OOPS е съкратено като система за обектно ориентирано програмиране, в която програмите се разглеждат като колекция от обекти. Всеки обект не е нищо друго освен екземпляр на клас.


2) Напишете основни понятия на OOPS?

Следват концепциите на OOPS:

  1. абстракция
  2. Капсулирането
  3. наследяване
  4. полиморфизъм

Безплатно изтегляне на PDF: Въпроси и отговори за OOPs интервю


3) Какво е клас?

Класът е просто представяне на тип обект. Това е чертежът/планът/шаблонът, който описва детайлите на даден обект.


4) Какво е обект?

Обектът е екземпляр на клас. Има свое собствено състояние, поведение и идентичност.


5) Какво е капсулиране?

Капсулацията е атрибут на обект и съдържа всички данни, които са скрити. Тези скрити данни могат да бъдат ограничени до членовете на този клас.

Нивата са публични, защитени, частни, вътрешни и защитени вътрешни.


6) Какво е полиморфизъм?

Полиморфизмът не е нищо друго освен присвояване на поведение или стойност в подклас на нещо, което вече е декларирано в основния клас. Просто полиморфизмът има повече от една форма.

OOPs въпроси за интервю
OOPs въпроси за интервю

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) Кои са всички оператори, които не могат да бъдат претоварени?

Следват операторите, които не могат да бъдат претоварени -.

  1. Резолюция на обхвата (::)
  2. Избор на членове (.)
  3. Избор на член чрез указател към функция (.*)

39) Какво е динамичен полиморфизъм или полиморфизъм по време на изпълнение?

Динамичният полиморфизъм или полиморфизмът по време на изпълнение е известен също като отмяна на метод, при който извикването на отменена функция се разрешава по време на изпълнение, а не по време на компилиране. Това означава да имате два или повече метода с едно и също име, същия подпис, но с различна реализация.


40) Изискваме ли параметър за конструктори?

Не, не изискваме параметър за конструктори.


41) Какво е конструктор за копиране?

Това е специален конструктор за създаване на нов обект като копие на съществуващ обект. Винаги ще има само един конструктор за копиране, който може да бъде дефиниран от потребителя или от системата.


42) Какво представлява ключовата дума virtual в дефиницията на метода?

Това означава, че можем да отменим метода.


43) Дали статичният метод може да използва нестатични членове?

False.


44) Какво представляват базов клас, подклас и суперклас?

Базовият клас е най-обобщеният клас и се нарича коренен клас.

Подкласът е клас, който наследява от един или повече базови класове.

Суперкласът е родителският клас, от който друг клас наследява.


45) Какво е статично и динамично обвързване?

Свързването не е нищо друго освен свързване на име с класа. Статичното обвързване е обвързване, при което името може да бъде свързано с класа по време на компилация и се нарича още ранно обвързване.

Динамичното обвързване е обвързване, при което името може да бъде свързано с класа по време на времето за изпълнение, и се нарича още късно обвързване.


46) Колко екземпляра могат да бъдат създадени за абстрактен клас?

За абстрактен клас ще бъдат създадени нула екземпляри. С други думи, не можете да създадете екземпляр на абстрактен клас.


47) Коя ключова дума може да се използва за претоварване?

Ключовата дума оператор се използва за претоварване.


48) Какъв е спецификаторът за достъп по подразбиране в дефиниция на клас?

Спецификаторът за частен достъп се използва в дефиниция на клас.


49) Коя OOPS концепция се използва като механизъм за повторно използване?

Наследяването е концепцията на OOPS, която може да се използва като механизъм за повторно използване.


50) Коя OOPS концепция излага само необходимата информация на извикващите функции?

Капсулирането


Тези въпроси за интервюто също ще ви помогнат във вашата viva (устна)

Сподели

79 Коментари

  1. въплъщение Абхинав Бхардвадж казва:

    Въпрос № 16 е с грешен отговор.
    Абстрактен клас може също да съдържа не-абстрактен метод.

    1. въплъщение Маной Кумар казва:

      Абхинав е прав..

      Един абстрактен клас може да има както абстрактни, така и неабстрактни методи. Минимум един абстрактен метод е задължителен..

      1. въплъщение Guru99 казва:

        Благодаря, корекцията е направена.

        1. въплъщение Сахира Ашраф казва:

          C++ поддържа ли 5 ​​типа спецификатор за достъп?

          1. въплъщение Зариш Алам казва:

            Не, мисля, че само 3...частен, публичен, защитен. Останалите две предполагам са за Java

          2. въплъщение Ахмад Атал казва:

            Модификаторът на Zarish Alam има шест незащитени акаунта

          3. въплъщение ханзаман вазир казва:

            не, мисля, че само три вида

      2. Анант Км казва:

        Минимум един абстрактен метод е задължителен – грешно е... Можем да създадем абстрактен клас без никакви абстрактни методи в него, просто се уверете, че не е инстанциран.

        1. въплъщение Арун Джоузеф казва:

          благодаря, това помага много

      3. въплъщение Джахангир Алам казва:

        Благодаря Манодж Кумар

      4. въплъщение Awais казва:

        Моля, прочетете го докрай. това условие е приложимо само в java.

    2. въплъщение абхай казва:

      брато всъщност, ако направиш метода си като абстракт, трябва да направиш класа си като абстракт, но ако направиш класа си като абстракт, не е задължително методите да бъдат абстракти. благодаря

    3. въплъщение Фраз Ахтар казва:

      само в абстрактния клас на Java има само абстрактен метод не за всички

  2. въплъщение UserRaven казва:

    Благодаря ви, беше много полезно

  3. въплъщение Едуин Еското казва:

    откъде знаеш в #15, че стойността за a и b е съответно 1.2 и 6??

    1. въплъщение Абишек Раджагопал казва:

      това са стойностите, предадени му

  4. въплъщение Арулпракасан казва:

    Наистина добре, полезно !!! Благодаря на кариерен гуру!!

  5. въплъщение мохини бареликар казва:

    Благодаря на кариерния гуру

  6. въплъщение Dhyey казва:

    Отговорът на последния въпрос не. 50 – Коя OOPS концепция излага само необходимата информация на извикващите функции? Абстракцията е грешна. Вместо това трябва да е капсулиране. Скриването на данни се отнася до капсулиране, а не до абстракция. Абстракцията е начин за проектиране на кода.

    1. въплъщение администратор казва:

      Грешка отстранена! благодаря

      1. въплъщение Еребус казва:

        Свързаният въпрос от теста все още казва Абстракция.

          1. въплъщение Сидхарт казва:

            Абстракцията е верният отговор. капсулирането е свързването на данни и функции с обект. Въпреки че капсулирането скрива данни от останалата част от програмата, въпросът не е за това.

          2. въплъщение но трябва да е само абстракция казва:

            Моля, коригирайте го

  7. въплъщение Сумя Патак казва:

    благодаря за тази помощ

  8. въплъщение Динеш казва:

    това е много полезно за основните слаби

  9. въплъщение Шива казва:

    Въпрос № 4, можете ли да проверите отговора веднъж, моля. Почувствайте, че формирането на изреченията трябва да бъде коригирано.

    1. въплъщение администратор казва:

      Грешка отстранена! благодаря

  10. въплъщение Yogesh казва:

    Въпрос №16
    Абстрактният клас може да има както абстрактен, така и неабстрактен метод в java. ако декларирате абстрактен метод, е задължително да декларирате клас като абстрактен, но когато декларирате клас като абстрактен, не е задължително да декларирате метод като абстрактен в java.

  11. Akshay казва:

    Абстрактен клас може да съдържа само абстрактен метод. така ли е
    ако не греша, може да съдържа както абстрактен метод, така и неабстрактен метод.

  12. въплъщение Азим Хан казва:

    В отговор на 31-ви въпрос new е оператор, а не модификатор....

  13. въплъщение Sunil казва:

    Въпрос № 36 е с грешен отговор. Модификаторът за достъп по подразбиране за клас е вътрешен, но не е частен

  14. въплъщение анонимен казва:

    Мисля, че отговорът на въпрос №50 е Абстракция

    1. въплъщение Минал Д казва:

      според мен отговорът за 50 трябва да е абстракция.

  15. въплъщение Гадипе Рамя казва:

    Искам това като PDF файл

  16. въплъщение тест казва:

    Какъв е модификаторът за достъп по подразбиране в клас?
    -Правилният отговор е публичен. Моля, актуализирайте.

    1. въплъщение Пчелен мед казва:

      Модификаторът за достъп по подразбиране в клас е ”Private”.

    2. въплъщение Раджита казва:

      отговорът е правилен, модификаторът за достъп по подразбиране е частен, няма нужда от актуализиране

    3. въплъщение Минал Д казва:

      отговорът е правилен, той е само частен.

    4. въплъщение сатя казва:

      Модификаторът за достъп по подразбиране е частен в клас

      1. въплъщение Виджай казва:

        Модификаторът за достъп по подразбиране на класа е частен в c++ и е публичен в java

  17. въплъщение Манджула казва:

    По-лесно е за разбиране

  18. Абдул Варис казва:

    Благодаря ви, беше много полезно, любезно моля за корекция
    Какъв е модификаторът за достъп по подразбиране в клас?
    -Правилният отговор е публичен. Моля, актуализирайте.

  19. въплъщение Shoaib казва:

    Наистина страхотно, полезно
    Благодаря

  20. въплъщение Бхану Кант Мишра казва:

    Модификаторът за достъп по подразбиране на клас е вътрешен.
    Модификаторът за достъп по подразбиране на член на класа е частен.
    Моля, поправете го…….

    1. въплъщение Кришна казва:

      Благодаря за писането. Преглежда се и се коригира.

  21. въплъщение Бхану Кант Мишра казва:

    Коя OOPS концепция излага само необходимата информация на извикващите функции?
    Абстракцията е верният отговор…..Тя показва само необходимата информация.
    Капсулация Скрийте важните данни от крайния потребител.

  22. въплъщение Чая казва:

    Благодаря, че е по-полезно за нас

  23. въплъщение Кахсай с кидан казва:

    вашите бележки са много доволни, но трябва да подготвите кодове с техните решения. благодаря за вашите лекции

  24. въплъщение Абхинав Каноджия казва:

    Вътрешен за клас и частен за член на класа. Така че отговорът е частично правилен.

  25. въплъщение Пранав Билуркар казва:

    Модификаторът за достъп по подразбиране за всички класове от най-високо ниво, включително нормален клас, е ВЪТРЕШЕН, а не публичен или частен.

  26. Махеш Радж казва:

    Вие сте страхотен господине
    Моля, сър следващия Най-популярни въпроси за
    1. Преден край
    2. Бекенд
    3. Приложение за Android 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏♥️♥️♥️♥️ ♥️♥️♥️♥️♥️🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏

  27. въплъщение М.икрам казва:

    4 пилера на oop са значими, как и ако пропуснем който и да е 2 от пилера какъв ефект ще има върху oop? pls pls pls отговор за просто изявление

  28. въплъщение Инам Уллах казва:

    това е голяма помощ, пълно благодаря

  29. въплъщение Линда казва:

    Много е полезно благодаря.

  30. въплъщение Дипендра Кумар казва:

    Отговорът на 50-ия въпрос е правилен или трябва да е абстракция??

  31. въплъщение Prateek казва:

    Мисля, че последният отговор трябва да бъде абстракция, а не капсулиране

  32. лалит казва:

    Мисля, че 50-та е грешна..
    трябва да е абстракция (не капсулиране)

    1. въплъщение МААЗ казва:

      трябва да е капсулиране, защото крием подробности за други класове.

  33. въплъщение който и да е казва:

    просто пробен период за XSS

  34. въплъщение амитгири казва:

    Това се тества тук сега

  35. въплъщение Пуджа Джоши казва:

    ques 16) Един абстрактен клас може да съдържа както абстрактни, така и неабстрактни методи.

    1. въплъщение Фраз Ахтар казва:

      абстрактен клас има както абстрактен, така и неабстрактен в c, python, но в java абстрактния клас има само абстрактен метод

  36. въплъщение ГАЙКУАД РАДЖШРИ казва:

    Благодаря за доброто предложение за информацията за oop езика

  37. въплъщение анонимен казва:

    Много е полезно, благодаря!!

  38. въплъщение Фраз Ахтар казва:

    абстрактен клас има както абстрактен, така и неабстрактен в c, python, но в java абстрактния клас има само абстрактен метод

  39. участника казва:

    14) Какво представлява претоварването на функциите?
    >> Претоварването на функции е обичайна функция, но може да изпълнява различни задачи

    Не, това е грешно. Функцията изпълнява абсолютно същата задача. единствената разлика е броят или типът на параметрите.

    Ако функцията е наречена „Добавяне“, тогава трябва да добавя, независимо от сигнатурата на функцията.

  40. въплъщение Естер Нахоло казва:

    Поздравления, много е полезно

  41. въплъщение Аднан казва:

    необходима е една чиста функция

  42. въплъщение манимози казва:

    благодаря за тези въпроси. Помага ми да си спомня всичките си концепции.

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани *