Java ist eine Programmiersprache aus dem Jahr 1995 von Sun Microsystems eingeführt . Beide Schnittstellen und abstrakte Klassen sind in Java-Code verwendet werden, wenn mehrere Subtypen der gleichen Klasse sich anders verhalten müssen . Abstrakte Klassen und Schnittstellen arbeiten sehr unterschiedlich und sind in unterschiedlicher Weise verwendet , obwohl es einige Ähnlichkeiten zwischen ihnen sind . Sprache
Abstrakte Klassen und Schnittstellen ermöglichen die unterschiedlichen Code verwendet werden. Zum Beispiel kann eine abstrakte Klasse enthalten konkreten Klassen , während eine Schnittstelle abstrakten Klassen enthalten kann. Eine abstrakte Klasse ist auch mehr Flüssigkeit als eine Schnittstelle und kann Felder, die nicht statisch sind oder endgültig, während eine Schnittstelle kann nicht enthalten . Darüber hinaus ist eine abstrakte Klasse erbt automatisch ein Objekt der Klasse , was bedeutet, es werden Methoden wie " Klon ()" und sind " equals () ", während eine Schnittstelle nicht enthalten können diese Methoden .
Implementierten Methoden
Methoden einer abstrakten Klasse kann mit einer Vielzahl von Sichtbarkeit Parameter, einschließlich public, protected , private oder keine definiert werden. Eine Schnittstelle kann nur sichtbar Öffentlichkeit. Dies bedeutet, dass alle Mitglieder einer Schnittstelle standardmäßig öffentlich sind , während die Mitglieder einer abstrakten Klasse nicht öffentlichen Member oder Methoden enthalten können.
Leistung
Generell betreiben Schnittstellen ein wenig langsamer als abstrakte Klassen , weil sie eine neue Klasse für jede Methode , die implementiert einzuführen , und es kann zusätzliche Zeit für eine Schnittstelle , um die richtige Methode in jeder Klasse zu lokalisieren nehmen . Eine abstrakte Klasse , auf der anderen Seite kann eine Methode, um mehrere Klassen gleichzeitig anzuwenden , und führt somit schneller. Allerdings sind die meisten JVMs (Java Virtual Machines ) von 2011 für die Differenz auszugleichen, und diese Performance-Unterschiede sind kaum bemerkt mehr.
Nutzungsbedingungen
Eine Schnittstelle verwendet werden soll wenn Ihr Skript fordert Sie auf, die Umsetzung für alle Ihre Methoden liefern . Schnittstellen können alle Ihre Klassen wieder von Grund auf in einer systematischen Art und Weise zu bauen. Abstrakte Klassen zu verwenden, wenn Sie eine teilweise Umsetzung des Skripts haben werden , aber es ist noch nicht vollständig abgeschlossen . Lassen Sie diese unvollständige Implementierungen als "abstrakt" und ermöglichen einen Server , um sie zu interpretieren.