Ich kenne die Konzepte der abstrakten Klasse und Interface-Klasse. Aber ich möchte Echtzeit-Beispiel, die beide das Konzept in unserem Design erklärt. Kann mir jemand helfen?Szenarien für die Verwendung der abstrakten Klasse und Interface-Klasse
Antwort
Hier erwähne ich einen Punkt, was wir mit abstrakten Klasse tun können, und Schnittstelle
- In abstrakte Klasse die abstrakte Methoden definieren können, die öffentlich oder geschützt sein sollte. In Interface können Sie jedoch nur die öffentliche abstrakte Methode definieren.
- In der abstrakten Klasse können Sie Datenelemente und Konstanten definieren, aber in der Schnittstelle können Sie nur Konstanten definieren.
- In abstrakte Klasse können Sie den Körper der Methode definieren und Sie können in Unterklasse erben, aber in der Schnittstelle können Sie nicht den Körper der Methode definieren.
- Sie können mehrere Schnittstellen in einer Unterklasse implementieren, aber Sie können nicht mehrere abstrakte Klassen in einer Unterklasse erben.
Beispiel
in den wichtigsten Frameworks verwendet Schnittstellen für verschiedene Typen von Datenquellenklasse. Wenn wir die Datenquellenklasse für eine neu eingeführte Datenbank erstellen wollen, müssen wir ihre Schnittstelle in unserer Klasse implementieren, damit sie die Code- und Methodenparameter gut verwaltet.
Eine abstrakte Klasse kann nicht deklarieren Sie abstrakte private Methoden .. nur public und protected .. Eine abstrakte Klasse kann jedoch private Methoden enthalten, die nur innerhalb der Klasse selbst aufgerufen werden können –
Beide haben wenig unterschiedliche Szenerien ... Abstrakte Klassen enthält auch Methodendefinition, wie Sie Schnittstelle nicht wissen. Wenn Sie jedoch die abstrakte Klasse definieren, können Sie nicht mehr als eine Klasse von der untergeordneten Klasse erben. Aber im Falle der Schnittstelle können Sie das tun und implementieren Sie die Methoden innerhalb der Schnittstelle deklariert.
Diese Szenerien werden in der Softwareentwicklung verwendet, da wir gerade die Signatur der Methode deklariert haben und der Benutzer dann seinen eigenen Code in die Methode schreiben kann, indem er ihn überschreibt.
- 1. Exakte Verwendung der abstrakten Klasse
- 2. Array der abstrakten Klasse
- 3. Funktion Anmerkung für Unterklassen der abstrakten Klasse
- 4. Java - Binärkompatibilität der abstrakten Klasse und Unterklassen
- 5. Was ist der Unterschied zwischen Objekt einer abstrakten Klasse und Liste von Objekten der abstrakten Klasse?
- 6. Verwendung der abstrakten Decorator-Klasse im Decorator-Muster
- 7. Jaxb -Unmarshalling der abstrakten Liste in der abstrakten Klasse
- 8. Array-Liste der abstrakten Klasse?
- 9. Was ist die Hauptmethode in der abstrakten Klasse?
- 10. Serialisierung einer abstrakten Klasse
- 11. Testen der abstrakten Klasse Konkrete Methoden
- 12. Handhabung Klassen inhärent von der abstrakten Klasse und Typ-Parameter
- 13. Was sind die Szenarien für die Verwendung von Spiegelung, Protokollversand, Replikation und Clustering in SQL Server
- 14. Partielle Methode innerhalb der abstrakten Klasse (C#)
- 15. So implementieren Sie die Erweiterungsmethode in der abstrakten Klasse
- 16. Instanz einer abstrakten Klasse
- 17. Unterschied zwischen abstrakten Klasse und Trait
- 18. Anmerkungen von der abstrakten Klasse übernehmen?
- 19. Abstrakte Klasse mit abstrakten Generika?
- 20. Implementierung der abstrakten Klasse ohne Template-Argument
- 21. Warum überspringt Mockito die Initialisierung der Membervariablen meiner abstrakten Klasse
- 22. Initialisierung statischer Variablen in der abstrakten Klasse und Unterklasse
- 23. Verspotten einer generischen Klasse mit einer abstrakten Version der Klasse
- 24. Welche Szenarien gelten für die Verwendung des HTTP-Status 207 in der REST-API?
- 25. Pro und Kontra der Verwendung von Lucene MultiSearcher Klasse
- 26. Implementieren Sie eine Methode der abstrakten Klasse, wenn die aktuelle Klasse bereits eine andere Klasse erweitert
- 27. Verwendung von Generika in abstrakten Klassen
- 28. Überschreiben der abstrakten Methode in der partiellen Klasse
- 29. Was ist die Verwendung von Konstruktor in abstrakten Klasse in PHP
- 30. Methode mit einer abstrakten Klasse als Parameter
Können Sie Ihre Frage näher erläutern? Möchten Sie wissen, wann Sie beides verwenden sollen? Oder warum sollten Sie sie benutzen? – Darren
Ja, ich möchte wissen, warum wir beide verwenden sollten – user3167857
Mögliches Duplikat von http://StackOverflow.com/Questions/1814821/interface-or-an-abstract-Class-which-one-in- – Mistalis