トップ 50 OOP のインタビューの質問と回答 (2024)

ここでは、夢の仕事に就くための、新人および経験豊富な候補者向けの OOP 面接の質問と回答を紹介します。

1) OOPS とは何ですか?

OOPS はオブジェクト指向プログラミング システムの略称であり、プログラムをオブジェクトの集合として考えるシステムです。 各オブジェクトはクラスのインスタンスにすぎません。


2) OOPS の基本概念を書きますか?

OOPS の概念は次のとおりです。

  1. 抽象化
  2. カプセル化
  3. 継承
  4. ポリモーフィズム

無料 PDF ダウンロード: OOP インタビューの質問と回答


3) クラスとは何ですか?

クラスは、単にオブジェクトのタイプを表現したものです。 これは、オブジェクトの詳細を記述する青写真/計画/テンプレートです。


4) オブジェクトとは何ですか?

オブジェクトはクラスのインスタンスです。 独自の状態、動作、アイデンティティを持っています。


5) カプセル化とは何ですか?

カプセル化はオブジェクトの属性であり、隠されているすべてのデータが含まれます。 その非表示データは、そのクラスのメンバーに制限できます。

レベルは、パブリック、保護、プライベート、内部、および保護された内部です。


6) ポリモーフィズムとは何ですか?

ポリモーフィズムは、メインクラスですでに宣言されているものにサブクラスの動作や値を代入することに他なりません。 簡単に言えば、ポリモーフィズムには複数の形式があります。

OOP の面接での質問
OOP の面接での質問

7) 継承とは何ですか?

継承は、あるクラスが別のクラスで定義された構造と動作を共有する概念です。 XNUMX つのクラスに適用される継承を単一継承と呼び、複数のクラスに依存する場合を多重継承と呼びます。


8) マニピュレーターとは何ですか?

マニピュレータは、オブジェクトの挿入 (<<) および抽出 (>>) 演算子と組み合わせて使用​​できる関数です。 例としては、endl と setw があります。


9) コンストラクターという用語の説明

コンストラクターはオブジェクトの状態を初期化するために使用されるメソッドであり、オブジェクトの作成時に呼び出されます。 コンストラクターのルールは次のとおりです。

  • コンストラクター名はクラス名と同じである必要があります。
  • コンストラクターには戻り値の型があってはなりません。

10) デストラクターを定義しますか?

デストラクタは、オブジェクトがスコープを作成したり破棄されたりするときに自動的に呼び出されるメソッドです。 デストラクター名もクラス名と同じですが、名前の前にチルダ記号が付いています。


11) インライン関数とは何ですか?

インライン関数はコンパイラで使用される手法で、プログラム ソース コード内で関数が使用される場所に関数の完全な本体を挿入するよう指示します。


12) 仮想関数とは何ですか?

仮想関数はクラスのメンバー関数であり、その機能はその派生クラスでオーバーライドできます。 この関数は、virtual というキーワードを使用することで実装でき、関数宣言時に指定することができます。

C++ では、仮想関数はトークン(virtual)を使用して宣言できます。 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) 三項演算子とは何ですか?

三項演算子は、XNUMX つの引数を取る演算子と言われます。 引数と結果のデータ型は関数によって異なります。 三項演算子は条件演算子とも呼ばれます。


18) Finalize メソッドは何に使用されますか?

Finalize メソッドは、現在使用されていないリソースに対してクリーンアップ操作を実行するのに役立ちます。 Finalize メソッドは保護されており、このクラスまたは派生クラスを介してのみアクセスできます。


19) 引数にはどのような種類がありますか?

パラメータは関数またはサブルーチンの宣言中に使用される変数であり、引数は関数本体に渡され、定義されたパラメータと一致する必要があります。 引数には XNUMX 種類あります。

  • 値による呼び出し – 渡された値は関数内でのみ変更され、関数に渡された値が何であっても同じ値を返します。
  • 参照による呼び出し – 渡された値は関数の内部と外部の両方で変更され、同じ値または異なる値を返します。

20) スーパーキーワードとは何ですか?

super キーワードは、スーパークラス メソッドの XNUMX つをオーバーライドするオーバーライドされたメソッドを呼び出すために使用されます。 このキーワードにより、オーバーライドされたメソッドにアクセスしたり、スーパークラスの非表示のメンバーにアクセスしたりすることができます。

また、コンストラクターからの呼び出しをスーパークラスのコンストラクターに転送します。


21) メソッドのオーバーライドとは何ですか?

メソッドのオーバーライドは、メイン クラスでオーバーライドするメソッドの実装をサブクラスで提供できるようにする機能です。 同じメソッド名、同じパラメータ、同じ戻り値の型を提供することで、スーパークラスの実装をオーバーライドします。


22) インターフェースとは何ですか?

インターフェイスは抽象メソッドのコレクションです。 クラスがインターフェイスを実装する場合、そのクラスはインターフェイスのすべての抽象メソッドを継承します。

Java はインターフェイスを使用して複数の継承を実装します。


23) 例外処理とは何ですか?

例外とは、プログラムの実行中に発生するイベントです。 例外には、実行時例外、エラー例外など、任意のタイプがあります。 これらの例外は、try、catch、throw キーワードなどの例外処理メカニズムを通じて適切に処理されます。


24) トークンとは何ですか?

コンパイラはトークンを認識しますが、トークンをコンポーネント要素に分解することはできません。 キーワード、識別子、定数、文字列リテラル、および演算子はトークンの例です。

句読点文字もトークンとみなされます。 例: 大括弧、コンマ、中括弧、括弧。


25) オーバーロードとオーバーライドの主な違いは何ですか?

オーバーロードは静的バインディングですが、オーバーライドは動的バインディングです。 オーバーロードとは、同じメソッドに異なる引数を指定することに他ならず、同じクラス自体で同じ値を返す場合もあれば返さない場合もあります。

オーバーライドされるのは、クラスとその子クラスに関連付けられた同じ引数と戻り値の型を持つ同じメソッド名です。


26) クラスとオブジェクトの主な違いは何ですか?

オブジェクトはクラスのインスタンスです。 オブジェクトは複数の情報を保持しますが、クラスには情報がありません。 プロパティと関数の定義はクラス内で行うことができ、オブジェクトで使用できます。

クラスはサブクラスを持つことができますが、オブジェクトはサブオブジェクトを持ちません。


27) 抽象化とは何ですか?

抽象化は OOPS の便利な機能であり、オブジェクトのクライアントに必要な詳細のみを表示します。 つまり、オブジェクトの内部コンストラクターではなく、オブジェクトに必要な詳細のみが表示されます。 例 – テレビのスイッチを入れたいとき、テレビのスイッチを入れるのに必要な内部回路/メカニズムを知る必要はありません。 テレビをオンにするために必要なものはすべて、抽象クラスを使用して表示されます。


28) アクセス修飾子とは何ですか?

アクセス修飾子は、他のさまざまなオブジェクトまたはクラスからアクセスできるメソッドまたは変数のスコープを決定します。 アクセス修飾子には次の XNUMX 種類があります。

  • プライベート
  • 保護されました
  • 公共
  • 友人
  • 保護された友人

29) シールド修飾子とは何ですか?

Sealed 修飾子は、メソッドが継承できないアクセス修飾子です。 Sealed 修飾子は、プロパティ、イベント、メソッドにも適用できます。 この修飾子は静的メンバーには使用できません。


30) インスタンスを作成せずに基本メソッドを呼び出すにはどうすればよいですか?

はい、インスタンスを作成せずに基本メソッドを呼び出すことができます。 そしてそのメソッドは「静的メソッド」である必要があります。

そのクラスから継承を行います。派生クラスからのベース キーワードを使用します。


31) 新規とオーバーライドの違いは何ですか?

new 修飾子は、基本クラス関数の代わりに新しい実装を使用するようにコンパイラーに指示します。 一方、Override 修飾子は、基本クラス関数をオーバーライドするのに役立ちます。


32) さまざまなタイプのコンストラクターとは何ですか?

コンストラクターには次の XNUMX 種類があります。

– デフォルトのコンストラクター – パラメーターなし。

– パラメトリック コンストラクター – パラメーター付き。 クラスの新しいインスタンスを作成し、同時に引数も渡します。

– コピー コンストラクター – 既存のオブジェクトのコピーとして新しいオブジェクトを作成します。


33) アーリーバインディングとレイトバインディングとは何ですか?

早期バインディングは設計時における変数への値の割り当てを指しますが、遅延バインディングは実行時における変数への値の割り当てを指します。


34) 「this」ポインタとは何ですか?

THIS ポインタは、クラスの現在のオブジェクトを参照します。 THIS キーワードは、現在のオブジェクトとグローバル オブジェクトを区別するポインタとして使用されます。 現在のオブジェクトを参照します。


35) 構造体とクラスの違いは何ですか?

構造体のデフォルトのアクセス タイプはパブリックですが、クラスのアクセス タイプはプライベートです。 構造体はデータをグループ化するために使用されますが、クラスはデータとメソッドをグループ化するために使用できます。 構造体はデータ専用であり、厳密な検証は必要ありませんが、クラスは固有のデータをカプセル化するために使用されるため、厳密な検証が必要です。


36) クラスのデフォルトのアクセス修飾子は何ですか?

クラスのデフォルトのアクセス修飾子は Internal で、クラス メンバーのデフォルトのアクセス修飾子は Private です。


37) 純粋仮想関数とは何ですか?

純粋仮想関数は、派生クラスでオーバーライドできるが定義できない関数です。 仮想関数は演算子 =0 を使用して Pure として宣言できます。

例–

Virtual void function1() // Virtual, Not pure

Virtual void function2() = 0 //Pure virtual


38) オーバーロードできない演算子は何ですか?

以下は、オーバーロードできない演算子です。

  1. スコープの解像度 (::)
  2. メンバー選択 (.)
  3. 関数へのポインター (.*) によるメンバーの選択

39) 動的ポリモーフィズムまたは実行時ポリモーフィズムとは何ですか?

動的ポリモーフィズムまたは実行時ポリモーフィズムは、オーバーライドされた関数の呼び出しがコンパイル時ではなく実行時に解決されるメソッド オーバーライドとも呼ばれます。 これは、同じ名前、同じシグネチャを持つ、しかし実装が異なる XNUMX つ以上のメソッドがあることを意味します。


40) コンストラクタにはパラメータが必要ですか?

いいえ、コンストラクターにはパラメーターは必要ありません。


41) コピーコンストラクターとは何ですか?

これは、既存のオブジェクトのコピーとして新しいオブジェクトを作成するための特別なコンストラクターです。 ユーザーまたはシステムが定義できるコピー コンストラクターは常に XNUMX つだけです。


42) キーワード virtual はメソッド定義で何を表しますか?

つまり、メソッドをオーバーライドできるということです。


43) 静的メソッドは非静的メンバーを使用できますか?

False。


44) 基本クラス、サブクラス、スーパークラスとは何ですか?

基本クラスは最も一般化されたクラスであり、ルート クラスと言われます。

サブクラスは、XNUMX つ以上の基本クラスを継承するクラスです。

スーパークラスは、別のクラスが継承する親クラスです。


45) 静的および動的バインディングとは何ですか?

バインディングとは、名前とクラスの関連付けに他なりません。 静的バインディングは、コンパイル時に名前をクラスに関連付けることができるバインディングであり、初期バインディングとも呼ばれます。

動的バインディングは、実行時に名前をクラスに関連付けることができるバインディングであり、遅延バインディングとも呼ばれます。


46) 抽象クラスに対してインスタンスはいくつ作成できますか?

抽象クラスに対してインスタンスは作成されません。 つまり、抽象クラスのインスタンスを作成することはできません。


47) オーバーロードに使用できるキーワードはどれですか?

演算子キーワードはオーバーロードに使用されます。


48) クラス定義内のデフォルトのアクセス指定子は何ですか?

プライベート アクセス指定子はクラス定義で使用されます。


49) どの OOPS コンセプトが再利用メカニズムとして使用されますか?

継承は、再利用メカニズムとして使用できる OOPS の概念です。


50) 必要な情報のみを呼び出し関数に公開する OOPS 概念はどれですか?

カプセル化


これらの面接の質問は、あなたの活力(口頭)にも役立ちます

シェアする

79のコメント

  1. アバター アビナブ・バルドワジ 言います:

    質問番号 16 の答えは間違っています。
    抽象クラスには、非抽象メソッドを含めることもできます。

    1. アバター Manojさんクマー 言います:

      アビナブは正しい。

      抽象クラスには、抽象メソッドと非抽象メソッドの両方を含めることができます。少なくとも XNUMX つの抽象メソッドは必須です。

      1. アバター Guru99 言います:

        ありがとうございます、修正が入りました。

        1. アバター サヒラ・アシュラフ 言います:

          C++ は 5 種類のアクセス指定子をサポートしていますか?

          1. アバター ザリシュ・アラム 言います:

            いいえ、私は 3 つだけだと思います…プライベート、パブリック、プロテクト。 残りの XNUMX つは Java 用だと思います

          2. アバター アフマド・アタル 言います:

            Zarish Alam Modifier アクセサーには保護されていないアカウントが XNUMX つあります。

          3. アバター カンザマン・ワジル 言います:

            いや、XNUMX種類だけだと思います

      2. アバター アナント Km 言います:

        少なくとも XNUMX つの抽象メソッドは必須です – それは間違いです。インスタンス化されていないことを確認するだけで、中に抽象メソッドがなくても抽象クラスを作成できます。

        1. アバター アルン・ジョセフ 言います:

          ありがとう、これはとても役に立ちます

      3. アバター ジャハンギールアラム 言います:

        ありがとう、マノージ・クマール

      4. アバター アウェイ 言います:

        ぜひ最後までお読みください。 この条件は Java にのみ適用されます。

    2. アバター Abhay 言います:

      実際、メソッドを抽象として作成する場合は、クラスを抽象として作成する必要がありますが、クラスを抽象として作成する場合は、メソッドを抽象として作成することは必須ではありません。 ありがとう

    3. アバター フラズ・アクタル 言います:

      Java抽象クラスでのみ抽象メソッドのみがあり、すべてに対応しているわけではありません

  2. アバター ユーザーレイブン 言います:

    ありがとう、とても役に立ちました

  3. アバター エドウィン・エスコート 言います:

    #15 で、a と b の値がそれぞれ 1.2 と 6 であることはどうやってわかりますか??

    1. アバター アビシェク・ラジャゴパル 言います:

      これらは渡される値です

  4. アバター プラチ・パティル 言います:

    ありがとうございました

  5. アバター アルルプラカサン 言います:

    本当に良いです、役に立ちます!!! ありがとう、キャリアの達人!!

  6. アバター モヒニ・バレリカル 言います:

    キャリアの達人に感謝します

  7. アバター ディエイ 言います:

    最後の質問No.の答えです。 50 – 必要な情報のみを呼び出し関数に公開する OOPS コンセプトはどれですか? 抽象化は間違っています。 代わりにカプセル化する必要があります。 データの隠蔽とは、抽象化ではなくカプセル化を指します。 抽象化はコードを設計する方法です。

    1. アバター 管理人 言います:

      エラーが修正されました! ありがとう

      1. アバター エレバス 言います:

        関連するクイズの質問にはまだ「抽象化」と表示されています。

          1. アバター シッダールタ 言います:

            抽象化が正解です。 カプセル化とは、データと関数をオブジェクトに関連付けることです。 カプセル化によりプログラムの残りの部分からデータが隠されますが、問題はそれについてではありません。

          2. アバター しかし、それは抽象化のみであるべきです 言います:

            修正してください

  8. アバター ソウミャ・パタク 言います:

    この助けに感謝します

  9. アバター ディネッシュ 言います:

    基本的な学習者にとっては非常に便利です

  10. アバター シバ神 言います:

    質問4、答えを一度確認していただけますか。 文章構成を修正する必要があると感じます。

    1. アバター 管理人 言います:

      エラーが修正されました! ありがとう

  11. アバター ヴァイシャリ 言います:

    ありがとう、役に立ちます

  12. アバター yogesh 言います:

    質問番号16
    Javaでは、抽象クラスには抽象メソッドだけでなく非抽象メソッドも含めることができます。 抽象メソッドを宣言する場合、クラスを抽象として宣言することは必須ですが、クラスを抽象として宣言する場合、Javaでメソッドを抽象として宣言することは必須ではありません。

  13. アバター Akshay 言います:

    抽象クラスには、抽象メソッドのみを含めることができます。 それは...ですか ?
    私が間違っていなければ、非抽象メソッドだけでなく抽象メソッドも含めることができます。

  14. アバター アジーム・カーン 言います:

    31 番目の質問の答えでは、new は修飾子ではなく演算子です…。

    1. アバター ケビン・テシヤ 言います:

      new は演算子ではありません。

  15. アバター スニル 言います:

    質問No.36の答えは間違っています。 クラスのデフォルトのアクセス修飾子は内部ですがプライベートではありません

  16. アバター 匿名の 言います:

    質問 #50 の答えは抽象化だと思います

    1. アバター ミナルD 言います:

      私によると、50の答えは抽象化であるべきです。

  17. アバター ガディペ・ラミャ 言います:

    これをPDFファイルで欲しいのですが

    1. アバター ゴパール 言います:

      メールでお送りいただくか、メールでご連絡ください

  18. アバター test 言います:

    クラスのデフォルトのアクセス修飾子は何ですか?
    -正解は公開されます。 更新してください。

    1. アバター M・アファム 言います:

      それは私用です。

    2. アバター デヴァンシュ 言います:

      いいえ、それはプライベートです

    3. アバター 蜂蜜 言います:

      クラスのデフォルトのアクセス修飾子は「Private」です。

    4. アバター ラジタ 言います:

      答えは正しいです。デフォルトのアクセス修飾子はプライベートです。更新する必要はありません。

    5. アバター ミナルD 言います:

      答えは正しいです。それはプライベートのみです。

    6. アバター サティア 言います:

      デフォルトのアクセス修飾子はクラス内でプライベートです

    7. アバター ニク 言います:

      私はこれが100%正しいわけではありません。

      1. アバター ビジェイ 言います:

        クラスのデフォルトのアクセス修飾子は、C++ では private ですが、Java では public です。

  19. アバター マンジュラ 言います:

    理解しやすいです

  20. アバター アブドゥル・ワリス 言います:

    ありがとうございます、とても助かりました、訂正お願いします
    クラスのデフォルトのアクセス修飾子は何ですか?
    -正解は公開されます。 更新してください。

  21. アバター ショアニブ 言います:

    本当に素晴らしい、役に立ちました
    感謝

  22. アバター バヌ・カント・ミシュラ 言います:

    クラスのデフォルトのアクセス修飾子は内部です。
    クラス メンバーのデフォルトのアクセス修飾子はプライベートです。
    修正してください……。

    1. アバター クリシュナ 言います:

      書いてくれてありがとう。 見直して修正しております。

  23. アバター バヌ・カント・ミシュラ 言います:

    必要な情報のみを呼び出し関数に公開する OOPS コンセプトはどれですか?
    抽象化が正解…必要な情報だけを表示します。
    カプセル化 重要なデータをエンドユーザーから隠します。

  24. アバター チャヤ 言います:

    ありがとう、私たちにとってもっと便利です

  25. アバター カーサイとキダン 言います:

    あなたのメモはとても嬉しいですが、解決策を含むコードを準備する必要があります。講義してくれてありがとう

  26. アバター アビナブ・カンノジア 言います:

    クラスの場合は内部、クラスのメンバーの場合はプライベート。 したがって、答えは部分的には正しいです。

  27. アバター プラナフ・ビルルカール 言います:

    通常のクラスを含むすべての最上位クラスのデフォルトのアクセス修飾子は、パブリックまたはプライベートではなく、INTERNAL です。

  28. アバター マヘシュ・ラージ 言います:

    あなたは素晴らしいです、先生
    次の質問をお願いします
    1. フロントエンド
    2. バックエンド
    3. Androidアプリ🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏 🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏♥️♥️♥️♥️ ♥️♥️♥️♥️♥️🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏

  29. アバター エムイクラム 言います:

    oop の 4 つの丸薬は重要ですが、どのように、2 つの丸薬を省略した場合、oop にどのような影響を与えるのでしょうか? 簡単なステートメントについて答えてください

  30. アバター イナム・ウラー 言います:

    とても助かりました、ありがとう

  31. アバター リンダ 言います:

    とても助かりました、ありがとうございます。

  32. アバター ディーペンドラ・クマール 言います:

    50番目の質問の答えは正しいですか、それとも抽象化すべきですか??

  33. アバター Prateek 言います:

    最後の答えはカプセル化ではなく抽象化であるべきだと思います

  34. アバター ラリット 言います:

    50位は間違ってる気がする…
    それは抽象化である必要があります(カプセル化ではありません)

    1. アバター マズ 言います:

      他のクラスの詳細を隠しているため、カプセル化する必要があります。

  35. アバター 任意 言います:

    XSS の単なるトライアル

  36. アバター アミギリ 言います:

    今ここでテスト中です

  37. アバター プジャジョシー 言います:

    ques 16) 抽象クラスには、抽象メソッドと非抽象メソッドの両方を含めることができます。

    1. アバター フラズ・アクタル 言います:

      C、Pythonでは抽象クラスには抽象と非抽象の両方がありますが、Javaでは抽象クラスには抽象メソッドのみがあります

  38. アバター ガイクワッド・ラージシュリ 言います:

    oop 言語に関する情報についての良い提案をありがとう

  39. アバター 匿名の 言います:

    とても助かります、ありがとうございます!!

  40. アバター フラズ・アクタル 言います:

    C、Pythonでは抽象クラスには抽象と非抽象の両方がありますが、Javaでは抽象クラスには抽象メソッドのみがあります

  41. アバター デスタフィット 言います:

    どうもありがとう!!

  42. アバター ニック 言います:

    14) 関数のオーバーロードとは何ですか?
    >> 関数のオーバーロードは通常の関数ですが、異なるタスクを実行できます

    いいえ、それは違います。 この関数はまったく同じタスクを実行します。 唯一の違いはパラメータの数またはタイプです。

    関数の名前が「Add」の場合は、関数のシグネチャに関係なく、Add する必要があります。

  43. アバター エスター・ナホロ 言います:

    おめでとうございます、とても便利です

  44. アバター アドナン 言います:

    XNUMX つの純粋関数が必要です

  45. アバター マニモジ 言います:

    この質問をありがとう。すべての概念を思い出すのに役立ちます。

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *