2016-08-03 27 views
-1

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

+0

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

+0

Ja, ich möchte wissen, warum wir beide verwenden sollten – user3167857

+1

Mögliches Duplikat von http://StackOverflow.com/Questions/1814821/interface-or-an-abstract-Class-which-one-in- – Mistalis

Antwort

0

Hier erwähne ich einen Punkt, was wir mit abstrakten Klasse tun können, und Schnittstelle

  1. 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.
  2. In der abstrakten Klasse können Sie Datenelemente und Konstanten definieren, aber in der Schnittstelle können Sie nur Konstanten definieren.
  3. 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.
  4. 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.

+2

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 –

0

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.

Verwandte Themen