21 Häufig gestellte OOP-Interviewfragen und Antworten, die Sie heute wissen sollten

Interviewfragen zur objektorientierten Programmierung können Programmierern und Entwicklern dabei helfen, ihr Wissen über Schlüsselkonzepte in der Programmierwelt zu erweitern.

OOP ist eines der notwendigsten und notwendigsten Programmierparadigmen, das sich auf Objekte und Klassen statt auf Prozeduren und Funktionen konzentriert.

Einige OOP-basierte Programmiersprachen sind Objective-C, Java, Ada, Perl, Python, C++ und mehr.

Große Unternehmen suchen Entwickler, die sich mit objektorientierten Ansätzen und Mustern auskennen.

Wenn Sie also vorhaben, an einem solchen Vorstellungsgespräch teilzunehmen, müssen Sie über ein tiefgreifendes Verständnis der OOP-Konzepte verfügen.

Sehen wir uns einige der häufig gestellten Fragen und Antworten zu OOP-Interviews an, die Ihnen bei der Vorbereitung auf Interviews und Tests helfen sollen.

Objektorientierte Programmierung (OOP): Ein Überblick

OOP ist ein Programmierparadigma, das sich um Objekte dreht. Hier werden die Objekte als reale Instanzen betrachtet, wie eine Klasse, die einige Verhaltensweisen und Merkmale enthält, die in der Klassenvorlage angegeben sind.

Betrachten wir zum Beispiel ein Auto. Nach dem OOPs-Modell:

  • Gegenstand: Ein Auto. Es kann sich um einen beliebigen Typ oder ein beliebiges Modell handeln, z. B. um das Auto, das Sie besitzen.
  • Klasse: Das Modell oder der Typ des Autos, z. B. BMW, Chevrolet, Kia, Audi und mehr.
  • Eigenschaften: Farbe des Autos, Fahrgestellnummer des Autos, Motortyp, Gangart und mehr.
  • Verhalten: Wie man den Gang wechselt, wie man das Auto startet und mehr.

Merkmale werden hier auch als Eigenschaften, Attribute oder Daten bezeichnet, während Verhalten in Programmiersprachen als Prozeduren, Methoden oder Funktionen bezeichnet werden.

Beginnen wir also mit einigen häufig gestellten OOP-Interviewfragen.

Was versteht man unter dem Begriff OOPs?

Antwort: Objektorientierte Programmierung (OOP) ist ein Programmiermodell, das auf Objekten und Klassen statt auf Prozeduren und Funktionen basiert. Einzelne Objekte werden in Klassen eingeteilt. OOPs beschreibt reale Entitäten mit Konzepten wie Polymorphismus, Verstecken, Vererbung usw. und Programmierparadigmen.

OOPs binden Code und Daten zusammen. Objekte sind Entitäten der realen Welt, die über Klassen mit bestimmten Eigenschaften und Verhalten definiert sind, während eine Klasse als Muster für ein bestimmtes Objekt definiert ist. Er wird auch als benutzerdefinierter Datentyp bezeichnet.

Dazu gehören Programme für Design und Fertigung sowie die mobile Anwendung. Beispielsweise können Sie OOP für Simulationssoftware für Fertigungssysteme verwenden.

Was sind einige andere Programmierparadigmen als OOPs?

Antwort: Programmierparadigmen sind die Methode zur Kategorisierung von Programmiersprachen basierend auf den Merkmalen jeder Sprache. Es gibt zwei Arten von Programmierparadigmen:

  • Imperatives Programmierparadigma: Es konzentriert sich darauf, wie Logik ausgeführt wird, und definiert den Kontrollfluss. Es umfasst das prozedurale Programmierparadigma, die objektorientierte Programmierung (OOP) und die parallele Programmierung.
  • Paradigma der deklarativen Programmierung: Es konzentriert sich darauf, was im Programm ausgeführt werden soll, und definiert seine Logik, nicht den Kontrollfluss. Es umfasst das Paradigma der logischen Programmierung, das Paradigma der funktionalen Programmierung und das Paradigma der Datenbankprogrammierung.

Was ist der Unterschied zwischen OOP und SOP?

Antwort: Lassen Sie uns anhand dieser Tabelle den Unterschied zwischen OOP und SOP verstehen:

Objektorientierte Programmierung Strukturorientierte Programmierung Es ist ein Programmiermodell, das auf Objekten statt auf Prozeduren und Funktionen basiert. Es bietet dem Programm eine logische Struktur, wobei die Programme in Funktionen unterteilt sind. Folgt einem Bottom-up-Ansatz. Folgt einem Top-down-Ansatz. Bietet Datenverbergung oder Kapselung. Bietet kein Datenverbergen. Niedrige Redundanz, da Code wiederverwendet werden kann. Es unterstützt keine Wiederverwendbarkeit von Code. Flexibler Weniger flexibel Sein Hauptanliegen sind Daten. Sein Hauptanliegen ist die logische Struktur eines Programms.

Was sind die Hauptmerkmale von OOPs?

Antwort: Hier sind die Hauptmerkmale von OOPs:

  • Nachlass
  • Verkapselung
  • Abstraktion
  • Polymorphismus
  • Methode überschreiben
  • Methodenüberladung
  • Objekte
  • Klassen
  • Konstruktoren und Destruktoren

Vererbung, Polymorphismus und Kapselung sind die grundlegenden Elemente von OOP, die diese Merkmale von Nicht-OOP-Sprachen unterscheiden.

  3 Alternativen zur Google Camera App für iPhone

Was ist Kapselung?

Antwort: Kapselung ist eine Methode, um Klassen, Variablen, Methoden und mehr in eine Kapsel zu packen, die erforderlich ist, um die Arbeit zu erledigen und dem Benutzer dieselbe Kapsel zu präsentieren. Vereinfacht gesagt werden alle notwendigen Methoden und Daten zusammengestellt und die unnötigen Details vor den Benutzern verborgen.

Es kann auch anders definiert werden:

  • Datenbindung: Kapselung ist ein Prozess der Bindung von Datenmitgliedern zusammen mit den Methoden als Klasse oder als Ganzes.
  • Verbergen von Daten: Kapselung ist ein Prozess zum Verbergen unnötiger Informationen, wie z. B. Zugriffsbeschränkungen für das Mitglied eines Objekts usw.

Was ist Polymorphismus?

Antwort: Lassen Sie uns Polymorphismus verstehen, indem wir den Begriff in zwei Wörter trennen, die ihn bilden:

„Poly“ bedeutet „viele“

„Morph“ bedeutet „Formen“

Polymorphismus kann also als ein Objekt beschrieben werden, das unterschiedliche Formen hat.

In OOPs wird es als der Prozess bezeichnet, durch den sich einige Daten, Objekte, Methoden oder Codes in mehreren Kontexten oder Umständen unterschiedlich verhalten. Es gibt zwei Arten von Polymorphismus im OOPs-Modell:

  • Laufzeitpolymorphismus
  • Kompilierzeit-Polymorphismus

Mit anderen Worten, es handelt sich um mehrere Definitionen einer einzigen Schnittstelle. Beispielsweise gibt es eine Klasse namens „Fahrzeug“, die aus einer Methode „Geschwindigkeit“ besteht. Es ist unmöglich, die Geschwindigkeit zu definieren, da verschiedene Fahrzeuge unterschiedliche Geschwindigkeiten haben. Somit können diese in den Unterklassen verschiedener Definitionen für verschiedene Fahrzeuge definiert werden.

Was ist statischer Polymorphismus?

Antwort: Statischer Polymorphismus ist auch als Kompilierzeit-Polymorphismus bekannt. Es ist das Merkmal, durch das ein Objekt anhand der Werte mit dem jeweiligen Operator oder der Funktion verknüpft werden kann. Dies kann durch Überladen von Operatoren oder Methoden erreicht werden.

Hier verwenden die Methoden einen ähnlichen Namen, aber die Parameter jedes Namens variieren. Das Objekt verhält sich bei einem ähnlichen Trigger anders. Somit werden mehrere Methoden in derselben Klasse implementiert.

Was ist dynamischer Polymorphismus?

Antwort: Dynamischer Polymorphismus wird auch als Laufzeitpolymorphismus bezeichnet. Es bezieht sich auf die Art der Polymorphie in OOPs, durch die der eigentliche Funktionseinbau während der Ausführung oder Laufzeit geregelt wird. Dies kann durch Überschreiben der Methode erreicht werden.

Beispielsweise werden zwei Klassen, bike und Yamaha, erstellt, und die Klasse Yamaha erweitert die bike-Klasse, indem sie ihre run()-Methode überschreibt. Da die Methode der Unterklasse die Methode der Elternklasse überschreibt, wird sie zur Laufzeit aufgerufen.

Was ist eine Klasse?

Antwort: Eine Klasse kann als Blaupause oder Vorlage definiert werden, die einige Werte enthält, die als Mitgliedsdaten bezeichnet werden. Es enthält auch einige Regeln, die als Funktionen oder Verhalten bekannt sind. Wenn Sie ein Objekt erstellen, übernimmt es automatisch die in der Klasse definierten Funktionen und Daten.

Eine Klasse ist jedoch eine Blaupause oder Vorlage für Objekte. Basierend auf einer Klasse können beliebig viele Objekte entworfen werden. Zum Beispiel wird zuerst eine Vorlage für ein Auto erstellt. Danach werden basierend auf der Vorlage des Autos verschiedene Einheiten von Autos entworfen.

Was ist ein Objekt?

Antwort: Das Objekt kann als Instanz einer Klasse definiert werden, die die Instanz von Verhaltensweisen und Mitgliedern enthält, die in der Vorlage definiert sind. Das Objekt ist die tatsächliche Entität, mit der ein Benutzer interagiert, aber die Klasse ist nur eine Blaupause für dieses Objekt.

Objekte haben also bestimmte Eigenschaften oder Verhaltensweisen und verbrauchen Platz – zum Beispiel ein bestimmtes Automodell.

Was ist der Unterschied zwischen einer Klasse und einer Struktur?

Antwort: Verstehen wir das mal mit Hilfe einer Tabelle:

Klassenstruktur Klassen sind Referenztypen. Strukturen sind Werttypen. Sie werden dem Heap-Speicher zugeordnet. Sie werden dem Stack-Speicher zugeordnet. Die Zuordnung ist im großen Referenztyp billiger. Die Zuordnung ist im Werttyp billiger als ein Referenztyp. Sie hat unbegrenzte Funktionen hat eingeschränkte Funktionen. Eine Klasse wird in großen Programmen verwendet. Eine Struktur wird in kleinen Programmen verwendet. Sie enthält einen Konstruktor und einen Destruktor. Sie enthält einen parametrisierten oder statischen Konstruktor. Es verwendet jedes Mal, wenn es Instanzen erstellt, ein Schlüsselwort new(). Es kann problemlos Instanzen mit oder ohne Schlüsselwörter erstellen. Eine Klasse kann von einer anderen Klasse erben. Eine Struktur darf nicht erben. Die Datenmitglieder einer Klasse können geschützt werden. Die Datenmember einer Struktur können nicht geschützt werden. Funktionsmember können abstrakt oder virtuell sein. Funktionsmember können nicht abstrakt oder virtuell sein. Zwei verschiedene Klassenvariablen können die Referenz eines ähnlichen Objekts enthalten. Jede Variable enthält ihre eigene Kopie.

  Apps mit Passwort schützen und Einstellungen über den App Switcher verwalten [Jailbreak]

Was ist Erbschaft?

Antwort: Vererbung ist eine der Funktionen von OOPs, die es einer Klasse ermöglichen, die Haupteigenschaften einer anderen Klasse zu erben. Wenn beispielsweise „Fahrzeug“ eine Klasse ist, dann sind „Auto“, „Fahrrad“ usw. andere Klassen, die Schlüsseleigenschaften von der Klasse „Fahrzeug“ erben können.

Diese Funktion hilft dabei, redundanten Code loszuwerden; Daher wird die Größe des Codes reduziert. Vereinfacht ausgedrückt wird Vererbung als Empfänger von Eigenschaften von der Elternklasse an die Kindklasse definiert. Hier ist „Fahrzeug“ die übergeordnete Klasse und „Auto“ oder „Fahrrad“ sind untergeordnete Klassen aus dem obigen Beispiel.

Auf diese Weise können Sie den Programmiercode einer Klasse in einer anderen Klasse wiederverwenden, ohne den gleichen Code erneut zu schreiben oder dabei Zeit zu verschwenden.

Welche Erbarten gibt es?

Antwort: Es gibt verschiedene Arten der Vererbung, die im OOPs-Modell verwendet werden, wie zum Beispiel:

  • Einfache Vererbung: Es definiert als die Vererbung, bei der eine einzelne Klasse gemeinsame Funktionen einer einzelnen Basisklasse erbt.
  • Mehrfachvererbung: Es kommt ins Spiel, wenn eine einzelne Klasse mehr als eine Klasse erbt.
  • Vererbung auf mehreren Ebenen: Dies bedeutet, dass eine Klasse von anderen Klassen erbt, die Unterklassen einer anderen Klasse sind.
  • Hierarchische Vererbung: Es bezieht sich auf die Vererbung, bei der eine Klasse mehrere Unterklassen hat.
  • Hybridvererbung: Es ist die Kombination aus mehrstufiger und mehrfacher Vererbung.

Welche Einschränkungen gibt es bei der Erbschaft?

Antwort: Einige der Einschränkungen der Vererbung sind wie folgt:

  • Es erhöht den Aufwand und die Zeit, die zum Ausführen des Programms erforderlich sind. Dies liegt daran, dass häufig von einer Klasse in eine andere Klasse gesprungen werden muss, was Zeit kostet.
  • Die Elternklasse ist zusammen mit der Kindklasse sehr eng gekoppelt, also weniger Flexibilität.
  • Es muss sorgfältig eingearbeitet werden, sonst würde es zu unzureichenden oder falschen Ergebnissen führen.
  • Eine einzige Änderung im Programm kann zu einer Änderung des Codes sowohl in der Eltern- als auch in der Kindklasse führen.

Was ist Abstraktion?

Antwort: Abstraktion ist eines der Elemente von OOPs. Die Schlüsselrolle der Abstraktion besteht darin, mit Komplexität umzugehen. Dies geschieht, indem unerwünschte Details vor den Benutzern verborgen werden. Dies ermöglicht es Benutzern, komplexe Logik zusätzlich zur Abstraktion zu implementieren, ohne über die verborgene Komplexität nachzudenken.

Wenn Sie beispielsweise ein Kaffeeliebhaber sind, müssen Sie wissen, wie viel Milch, Kaffeebohnen und Zuckerwürfel Sie hinzufügen möchten, um eine Tasse Kaffee mit einer Kaffeemaschine zuzubereiten. Es hat keinen Sinn, über das Arbeitsprinzip dieser Maschine nachzudenken. Die Kaffeemaschine ist eine versteckte Komplexität, die Sie nicht kennen müssen, aber der Prozess der Kaffeezubereitung ist eine Notwendigkeit.

Es gibt zwei Arten der Abstraktion:

  • Datenabstraktion
  • Prozessabstraktion

Was ist ein Konstruktor?

Antwort: Ein Konstruktor ist eine spezielle Methode in der Klasse oder Struktur, deren Name dem Klassennamen ähnlich ist. Es dient dem erforderlichen Zweck der Initialisierung von Objekten. Es hilft auch beim Instanziieren von Mitgliedsdaten sowie Methoden zum Zuweisen von Objekten zu der Klasse.

  So umgehen Sie den Administrator auf dem Schul-Chromebook

Beim Erstellen eines Konstruktors müssen einige Dinge beachtet werden:

  • Es wird genauso benannt wie der Klassenname.
  • Es kann nicht abstrakt, endgültig oder statisch sein.
  • Es hat keine Rückgabetypvariable.

Was sind die verschiedenen Arten von Konstruktoren in C++?

Antwort: In C++ gibt es hauptsächlich drei Arten von Konstruktoren:

  • Standardkonstruktor: Ein Konstruktor ohne Parameter oder Argumente in der Definition. Dieser Konstruktortyp wird verwendet, um die Datenelemente oder Variablen mit realen Werten zu initialisieren.
  • Parametrisierter Konstruktor: Er enthält Argumente oder Parameter in der Deklaration und Definition. Mehr als ein Parameter kann den parametrisierten Konstruktor passieren. Es wird zum Überladen verwendet, um die Unterschiede in mehreren Konstruktoren zu kennen.
  • Kopierkonstruktor: Es ist eine Memberfunktion, die ein anderes Objekt einer ähnlichen Klasse verwendet, um ein Objekt zu initialisieren. Darüber hinaus hilft es beim Kopieren von Daten von einem einzelnen Objekt zu einem anderen.

Was ist ein Destruktor?

Antwort: Ein Destruktor ist eine Methode, die automatisch aufgerufen wird, während ein Objekt zerstört wird. Es implementiert bestimmte Aktionen:

  • Wiederherstellen von Heap-Speicherplatz, der zuvor während der Initialisierung des Objekts zugewiesen wurde
  • Schließen von Datenbankverbindungen und Dateien
  • Freigeben von Netzwerkressourcen und Ressourcensperren
  • Erledigung verschiedener hauswirtschaftlicher Aufgaben

Mit anderen Worten, ein Destruktor zerstört die vom Konstruktor initialisierten Objekte. Es handelt sich um eine spezielle Elementfunktion mit demselben Namen wie der Klassenname, der jedoch ein Symbol (~) vorangestellt ist. Ein Destruktor kann überladen werden, da es sich um eine Einwegfunktion handelt.

Was ist Garbage Collection (GC)?

Antwort: Garbage Collection (GC) ist ein Speicherwiederherstellungselement, das in Programmiersprachen wie Java und C# integriert ist. Eine GC-fähige Programmiersprache enthält mindestens einen Garbage Collector, der automatisch Speicherplatz freigibt, der innerhalb eines Programms nicht mehr benötigt wird.

Garbage Collection bestätigt, dass sich das Programm noch innerhalb seines Speicherkontingents befindet. Es hindert Entwickler daran, den Speicher des Programms manuell zu verwalten, wodurch speicherbezogene Fehler minimiert werden.

Was ist Ausnahmebehandlung?

Antwort: Die Ausnahmebehandlung ist eine Methode, auf unerwartete Ereignisse zu reagieren, während ein Computerprogramm ausgeführt wird. Programmierer müssen unerwünschte Ereignisse (Ausnahmen) „behandeln“, um zu verhindern, dass ein System oder Programm abstürzt. Ohne diese Methode können Ausnahmen den normalen Betrieb eines Programms stören und zu Ineffizienzen oder Risiken führen.

Was ist ein Try/Catch-Block?

Antwort: Try oder catch sind die Schlüsselwörter, die Ausnahmebehandlungen aufgrund von Codierungs- oder Datenfehlern während der Ausführung eines Programms darstellen.

  • Ein Try-Block ist der Codeblock, in dem Ausnahmen auftreten
  • Ein catch-Block verarbeitet und fängt try-Block-Ausnahmen ab

Die try- und catch-Anweisungen werden häufig in verschiedenen Programmiersprachen verwendet, einschließlich C++. C#, Java, SQL und JavaScript. Jede try-Anweisung stimmt mit einer catch-Anweisung überein, um die Ausführung zu handhaben. Hier sind noch ein paar Dinge, die Sie in Try-and-Catch-Anweisungen beachten sollten:

  • Auf einen try-Block folgt der catch-Block.
  • Auf einen try-Block folgt mindestens ein catch-Block.
  • Auf einen try-Block folgt ein weiterer try-Block und weiter gefolgt vom catch-Block.

Fazit

OOP ist ein wesentliches Konzept, das Programmierer kennen sollten. Wenn Sie es gründlich lernen, können Sie auch gut in Sprachen programmieren, die die OOP-Konzepte verwenden.

Wenn Sie sich auf ein Vorstellungsgespräch oder einen Test vorbereiten, helfen Ihnen die obigen Fragen und Antworten zu Vorstellungsgesprächen dabei, Ihr Verständnis von OOP-Konzepten wie Klassen, Objekten, Kapselung, Polymorphismus, Vererbung, Abstraktion und mehr aufzufrischen. Auf diese Weise können Sie sich selbstbewusst den Vorstellungsgesprächen stellen und sie erfolgreich meistern, um Ihre Karriere aufzubauen.

Sie können sich auch einige dieser SQL-Interviewfragen ansehen.

x