Hauptunterschied – Klasse vs. Schnittstelle
Objektorientierte Programmierung (OOP) ist ein weit verbreitetes Paradigma in der Softwareentwicklung. Es hilft, Szenarien aus der realen Welt mithilfe von Klassen und Objekten in die Programmierung einzubringen. Eine Klasse ist eine Blaupause zum Erstellen eines Objekts. Der Programmierer kann eine Klasse mit Eigenschaften und Methoden erstellen. Ein Schüler und ein Lehrer sind Objekte. Das Erstellen eines Objekts wird als Instanziierung bezeichnet. OOP verwendet auch Schnittstellen. Schnittstellen und Klasse mögen ähnlich erscheinen, aber sie haben einen Unterschied. Dieser Artikel beschreibt den Unterschied zwischen einer Klasse und einer Schnittstelle. Der Hauptunterschied zwischen einer Klasse und einer Schnittstelle besteht darin, dass eine Klasse ein Referenztyp ist, der eine Blaupause zum Instanziieren eines Objekts darstellt, während die Schnittstelle ein Referenztyp ist, der nicht zum Instanziieren eines Objekts verwendet werden kann.
Was ist Klasse?
In OOP wird alles als Objekt betrachtet. Es ist nicht möglich, ein Objekt ohne Klasse zu erstellen. Eine Klasse ist eine Blaupause zum Erstellen eines Objekts. Beim Bau eines Hauses zeichnet der Architekt den Plan. Der Plan ähnelt einer Klasse. Das Haus ist dem Objekt ähnlich. Die Klasse ist der Plan, ein Objekt zu bauen. Ein Objekt ist das, was mit der Klasse erstellt wird.
Die Klasse enthält die Eigenschaften und Methoden. Ein Schüler kann Eigenschaften wie Name, Note, Indexnummer haben. Ein Schüler kann Methoden wie Lesen, Gehen, Studieren haben. Eine Klasse wird mit den notwendigen Eigenschaften und Methoden erstellt.
Die Syntax zum Erstellen einer Klasse in vielen Programmiersprachen lautet wie folgt. Es wird mit dem Schlüsselwort class. erstellt.
class class_name {
// Eigenschaften
//Methoden
}
Programmiersprachen wie C und Java verwenden eine ähnliche Syntax, um ein Objekt mithilfe einer Klasse zu erstellen. Angenommen, der Klassenname ist Student.
Student s1=neuer Student ();
Diese s1 ist das Objekt. Das Schlüsselwort „new“wird verwendet, um Speicher für die Eigenschaften zuzuweisen. Eine Klasse hat auch einen Konstruktor, um Eigenschaften oder Variablen zu initialisieren.
Klassenmitglieder wie Eigenschaften und Methoden haben Zugriffsmodifikatoren. Zugriffsbezeichner beschreiben die Zugänglichkeit und Sichtbarkeit dieser Mitglieder für andere Klassen. Mitglieder der Klasse können Zugriffsbezeichner wie öffentlich, privat und geschützt haben. Auf öffentliche Member kann von anderen Klassen zugegriffen werden. Private Mitglieder sind nur für die Klasse zugänglich. Auf geschützte Elemente kann innerhalb der Klasse und relevanter Unterklassen zugegriffen werden.
Was ist Interface?
Abstraktion ist eine Säule der objektorientierten Programmierung. Es dient dazu, die Implementierungsdetails auszublenden und dem Benutzer die Funktionalität anzuzeigen. Abstraktion wird durch abstrakte Klassen und Schnittstellen erreicht. Eine abstrakte Methode hat keine Implementierung. Eine Klasse, die mindestens eine abstrakte Methode enthält, wird als abstrakte Klasse bezeichnet.
Wenn es zwei abstrakte Klassen gibt, sollten die in diesen Klassen deklarierten Methoden implementiert werden. Eine neue Klasse wird verwendet, um diese Methoden zu implementieren. Wenn beide Klassen dieselbe Methode hätten, könnte dies zu einem Mehrdeutigkeitsproblem führen. Daher haben Programmiersprachen wie Java und C eine Schnittstelle.
Interfaces enth alten nur die Deklaration von Methoden. Es gibt keine Methode zur Umsetzung. Außerdem können Schnittstellen nicht zum Erstellen von Objekten verwendet werden. Sie werden verwendet, um Mehrfachvererbungen zu unterstützen und den Code zu sichern.
Die Syntax von Interface ist wie folgt. Schnittstelle verwenden Sie das Schlüsselwort „interface“.
Schnittstelle Schnittstellenname{
type method1(parameter_list);
type method2(parameter_list);
}
Gemäß oben haben Interfaces nur die Deklaration. Es gibt keine Definition. Schnittstellen können also keine Objekte instanziieren. Es gibt nur einen abstrakten Überblick darüber, was die Schnittstelle ist. In der Schnittstelle deklarierte Methoden können von einer oder mehreren Klassen implementiert werden. Eine Klasse verwendet das Schlüsselwort „implement“, um eine Schnittstelle zu implementieren. Siehe untenstehendes Beispiel, das mit Java geschrieben wurde.
Abbildung 01: Programm mit Schnittstellen
Nach obigem Programm sind A und B Schnittstellen. Schnittstelle A hat eine Methodendeklaration, die sum() ist. Schnittstelle B hat eine Methodendeklaration sub(). Klasse C implementiert beide Schnittstellen, die A und B sind. Daher definiert Klasse C sowohl sum()- als auch sub()-Methoden. Nach dem Erstellen des Objekts vom Typ C können beide Methoden sum() und sub() aufgerufen werden.
In der Schnittstelle deklarierte Methoden müssen immer öffentlich sein, weil die implementierenden Klassen sie definieren. Eine Schnittstelle kann auch von einer anderen Schnittstelle erben.
Was sind die Ähnlichkeiten zwischen Klasse und Interface?
- Beide sind Referenztypen.
- Beide beziehen sich auf die objektorientierte Programmierung.
Was ist der Unterschied zwischen Klasse und Interface?
Klasse vs. Schnittstelle |
|
Eine Klasse ist ein Referenztyp, der eine Blaupause zum Erstellen eines Objekts darstellt. | Eine Schnittstelle ist ein Referenztyp, der nicht instanziiert werden kann. |
Instanziierung von Objekten | |
Eine Klasse wird verwendet, um ein Objekt zu instanziieren. | Eine Schnittstelle kann nicht instanziiert werden, da die Methoden keine Aktion ausführen können. |
Konstruktor | |
Eine Klasse enthält einen Konstruktor, um die Variablen zu initialisieren. | Eine Schnittstelle enthält keinen Konstruktor, weil sie kaum zu initialisierende Variablen sind. |
Schlüsselwort | |
Eine Klasse verwendet das Schlüsselwort „class“. | Ein Interface verwendet das Schlüsselwort „interface“. |
Zugriffsbezeichner | |
Mitglieder der Klasse können privat, öffentlich und geschützt sein. | Mitglieder der Schnittstelle sollten immer öffentlich sein, weil die implementierenden Klassen sie definieren. |
Zusammenfassung – Klasse vs. Schnittstelle
Klassen und Schnittstellen sind in der objektorientierten Programmierung weit verbreitet. Der Unterschied zwischen einer Klasse und einer Schnittstelle besteht darin, dass eine Klasse ein Referenztyp ist, der eine Blaupause zum Instanziieren eines Objekts darstellt, und eine Schnittstelle ein Referenztyp ist, der nicht zum Instanziieren eines Objekts verwendet werden kann. Eine Klasse kann viele Interfaces implementieren. Aber es kann nur eine Oberklasse erweitern. In Schnittstelle kann viele Schnittstellen erben, aber es kann keine Implementierung geben. Beides hat seine Bedeutung. Der Programmierer kann sie entsprechend der Entwicklungssoftware verwenden.
Laden Sie die PDF-Klasse vs. Schnittstelle herunter
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter. Unterschied zwischen Klasse und Schnittstelle