Schnittstellen und abstrakte Klassen in Java

Obwohl beide Strukturen ähnlich erscheinen, weil sie die Klassen, die sie verwenden, dazu zwingen, die Methoden zu erstellen und zu verwenden, um gültig zu sein, weisen sie wesentliche Unterschiede auf, die uns einen besseren Einblick in die Art und Weise geben, wie wir sie verwenden können.

Obwohl die Unterschiede geringfügig sind, können wir beide Strukturen verwenden, auch wenn sie kombiniert sind. Auf diese Weise können wir unserem Projekt eine größere Ordnung verleihen und Anwendungen erstellen, mit denen wir die Objekte der realen Welt in einem digitalen Format besser reproduzieren können.

Einschränkungen
Der Hauptunterschied, den wir zwischen abstrakten Klassen und Interfaces sehen, besteht darin, dass das erste eine Klasse ist und das zweite keine, obwohl die Struktur des Interfaces einigen Einschränkungen unterliegt, die in einer abstrakten Klasse nicht auftreten.

Variablen
Die abstrakte Klasse hat keine Einschränkung hinsichtlich der Verwendung von Variablen, aber die Schnittstelle hat tatsächlich alle Variablen, die wir verwenden werden, müssen öffentlich, statisch oder endgültig sein .

Bauherren

In diesem Fall muss der Konstruktor der abstrakten Klasse über Unterklassen aufgerufen werden, wodurch die Möglichkeit entfällt, ihn über den Operator new zu instanziieren.

Im Falle der Schnittstelle kann dies keine Konstruktoren haben, da es keine Klasse ist, was bedeutet, dass wir auch die Erstellung von Instanzen mit dem Operator new verwerfen.

Methoden
In einer Schnittstelle müssen die Methoden eine öffentliche Zusammenfassung von obligatorischer Form sein, in der abstrakten Klasse können wir jedoch jede Art von Methode ohne Probleme platzieren, was uns mehr als einen Unterschied kennzeichnet.

Vererbung und Implementierung

Ein weiterer Punkt, den wir berücksichtigen müssen, ist die Art der Vererbung und Implementierung, die wir mit diesen beiden Strukturen in Java erreichen können. Wir wissen, dass wir bei der Vererbung in einer Klasse nur direkt von einer höheren Klasse erben können, wenn wir dies möchten Von zwei verschiedenen Klassen erben, müssen wir einen Kaskadeneffekt erstellen, bei dem eine erste Klasse von der übergeordneten Klasse und dann eine andere Klasse von dieser Klasse erbt, um ihre Funktionalität und die ihrer übergeordneten Klasse zu erhalten.

See also  Deaktivieren Sie die automatische Vervollständigung von Chrome-, Firefox-, Safari- oder Edge-Passwörtern

In den Interfaces tritt dieses Problem nicht auf. Tatsächlich können wir direkt von mehreren Interfaces erben. Wenn wir also ihre Methoden erhalten möchten, können wir dies problemlos tun.

java_interfaces_clases_abstractas.jpg

Wenn wir bei der Implementierung einer Schnittstelle in einer abstrakten Klasse mehr Freiheit haben, können wir in diesem Fall mehrere Schnittstellen ohne irgendeine Einschränkung implementieren, was uns die Möglichkeit gibt, eine komplexere übergeordnete Schnittstelle zu erstellen, um dies auszudrücken irgendwie Wichtig ist hierbei zu wissen und zu beachten, dass eine Schnittstelle keine Klasse ist und daher nicht von einer erben kann, sondern nur andere Schnittstellen .

java_interfaces_clases_abstractas2.jpg

Nachdem wir dieses Tutorial abgeschlossen haben, haben wir die Unterschiede in den Einschränkungen und der Implementierung dieser beiden Strukturen in Java in unseren Programmen gesehen, obwohl beide dazu dienen, Verhalten zu modellieren und zu definieren, wobei jedes seinen Platz hat. Wenn wir sie also besser kennen, können wir entscheiden, welche Verwenden Sie in unseren Programmen, die mit dieser Sprache erstellt wurden.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *