Inhaltsverzeichnis
Obwohl beide Strukturen ähnlich erscheinen mögen, da sie die Klassen, die sie verwenden, zwingen, die Methoden zu erstellen, die sie haben, und sie zu verwenden, damit sie gültig sind, gibt es wichtige Unterschiede zwischen ihnen, die uns mehr Aufschluss darüber geben können, wie wir sie verwenden können .Die Unterschiede, obwohl sie subtil sind, ermöglichen es uns, beide Strukturen auch in Kombination zu verwenden. Auf diese Weise können wir in unserem Projekt eine größere Ordnung erreichen und Anwendungen erstellen, die es uns ermöglichen, die Objekte der realen Welt in einem digitalen Format besser wiederzugeben.
BeschränkungenDer Hauptunterschied, den wir sehen zwischen abstrakte Klassen und Schnittstellen ist, dass die erste eine Klasse ist und die zweite nicht, obwohl die Schnittstelle hat eine ähnliche Struktur, unterliegt Einschränkungen, die in a . nicht zu finden sind abstrakte Klasse.
VariablenDas abstrakte Klasse hat keine Einschränkung bei der Verwendung von Variablen, jedoch Schnittstelle Wenn ja, müssen tatsächlich alle Variablen, die wir verwenden werden, sein öffentlich, statisch oder endgültig.
In diesem Fall die Baumeister des abstrakte Klasse muss über Unterklassen aufgerufen werden, was die Möglichkeit der Instanziierung durch den Operator auslässt Neu.
Im Falle des Schnittstelle, dies kann keine Konstruktoren haben, da es sich nicht um eine Klasse handelt, was dazu führt, dass wir auch die Erstellung von Instanzen mit dem Operator verwerfen Neu.
MethodenIn einem Schnittstelle die Methoden müssen sein öffentliche Zusammenfassung Andererseits können wir in der abstrakten Klasse jede Art von Methode problemlos platzieren, was für uns einen weiteren Unterschied macht.
Ein weiterer Punkt, den wir berücksichtigen müssen, ist die Art der Vererbung und Umsetzung, die wir mit diesen beiden Strukturen in Java, wir wissen das, wenn wir es tun Nachlass In einer Klasse können wir nur direkt von einer übergeordneten Klasse erben, d.h. wenn wir von zwei verschiedenen Klassen erben wollen, müssen wir einen Kaskadeneffekt erzeugen, bei dem eine erste Klasse von der übergeordneten Klasse erbt und dann eine andere Klasse von erbt this, um seine Funktionalität und die seiner Elternklasse zu erhalten.
Im Schnittstellen Dieses Problem tritt nicht auf, tatsächlich können wir direkt von mehreren Schnittstellen erben. Wenn wir also ihre Methoden erhalten möchten, können wir dies problemlos tun.