Der Unterschied zwischen Schnittstelle & abstrakte Klasse

July 5

In der Welt der Programmierung EDV-Anwendungen ist es eine gute Sache faul Programmierer sein. Insbesondere zeigt es Tools verwenden, anderen Programmierern erstellt für einen bestimmten Zweck, anstatt Sie aus, um das Rad neu zu erfinden. In der Programmiersprache Java sind zwei Formen dieser Tools, die für sich oder andere Programmierer Programmierer machen nehmen können Schnittstellen und abstrakte Klassen.

Klasse Modelle

Schnittstellen und abstrakte Klassen dienen als eine Art Vorlage für eine bestimmte Klasse. Programmierer dieser Klassen zu erstellen, um bestimmte generischen Verhaltensweisen für die Klasse angeben und den einzelnen Programmierer der endet mit der Klasse angeben, die Verhaltensweisen der Klasse für den Programmierer bestimmte Anwendung zu ermöglichen. Während sie beide als allgemeine Modelle fungieren, sie haben unterschiedliche Protokolle für Erklärungen und verschiedenen Anforderungen für den End-Programmierer.

Klassendeklarationen und Implementierungen

Programmierer angeben, wenn eine Klasse eine Schnittstelle oder eine abstrakte Klasse mit verschiedenen Schlüsselwörtern in der Klassendeklaration. Dies wird entweder "Schnittstelle" gefolgt vom Namen der Schnittstelle oder "abstrakte Klasse" gefolgt von dem Namen der Klasse sein. Programmierer mit der abstrakten Klasse oder Schnittstelle verwenden Sie nicht die Klasse direkt, sondern erstellen Sie eine Unterklasse der besonderen Klasse-Typ, den sie verwenden werden. Um eine Schnittstelle zu verwenden, würde ein Programmierer "implementiert die Schnittstelle" wo "Interface" der Name der bestimmten Schnittstelle ist hinzufügen. Eine abstrakte Klasse verwenden Programmierer möchte hinzufügen "erweitert AbstractClass" wobei "AbstractClass" der Name der abstrakten Klasse ist.

Methodenimplementierungen

Unterklassen können Methoden in ihrer übergeordneten Klasse (in diesem Fall die Schnittstelle oder eine abstrakte Klasse) überschreiben. Wenn ein Programmierer eine Methode mit dem gleichen Namen als Methode in der übergeordneten Klasse deklariert, verwendet das Programm den Code für die Methode dann die dem Benutzer statt des Codes in die übergeordnete Methode bieten. In abstrakten Klassen werden einige Methoden deklariert als "abstrakt". Diese Methoden befassen sich mit den Besonderheiten wie eine Klasse verwendet wird, und der End-Programmierer muss die Methoden übergehen, die als abstrakt deklariert werden. In Schnittstellen muss der Endbenutzer jede Methode der Schnittstelle übergehen.

Situative Verwendung

Diese funktionale Unterschiede eignen sich für bestimmte Verwendungszwecke. Über eine Schnittstelle stellt sicher, dass eine bestimmte Klasse alle Anforderungen für eine bestimmte Datenstruktur erfüllt. Z. B. ein Programmierer, der seine eigene Bibliothek von Netzwerk-Verbindung Funktionen können Programmierer verwenden machen und Schnittstellenklasse den er Daten vorgesehen, die der End-Programmierer mit diesen Funktionen senden möchte. Die Schnittstelle stellt sicher, dass jede ausgehende Übermittlung alles wird die Bibliotheken benötigen, um erfolgreich die Daten senden. Alternativ könnte die gleichen Programmierer eine abstrakte Klasse machen die Methoden enthalten, die die Schrauben und Senden der Daten detailliert, aber benötigt End Programmierer übergehen, bestimmte Methoden beschäftigen, wohin die Daten gesendet werden würde oder was gesendet werden würde.