Abstrakte Klassen werden verwendet, um die gemeinsamen Merkmale von Unterklassen zu erfassen und um Vorlagen für Unterklassen in der Vererbungshierarchie zu erstellen. In Wirklichkeit besteht keine Notwendigkeit, einige Methoden in der übergeordneten Klasse zu schreiben, da die Methoden in jeder Unterklasse definitiv unterschiedlich sind. Schreiben Sie sie stattdessen als abstrakte Klasse, damit Sie das wissen, wenn Sie sich den Code ansehen Dies ist eine abstrakte Methode, und Sie werden wissen, dass diese Methode in der Unterklasse implementiert ist und daher einen sofortigen Effekt hat.
1. Was ist eine abstrakte Klasse
Im objektorientierten Konzept werden alle Objekte durch Klassen dargestellt, aber umgekehrt werden nicht alle Klassen zur Beschreibung von Objekten verwendet, wenn eine Klasse dies tut Da sie nicht genügend Informationen enthalten, um ein bestimmtes Objekt zu beschreiben, handelt es sich bei einer solchen Klasse um eine abstrakte Klasse.
Abgesehen davon, dass abstrakte Klassen keine Objekte instanziieren können, können auf andere Funktionen der Klasse weiterhin auf die gleiche Weise wie auf normale Klassen zugegriffen werden.
Da abstrakte Klassen keine Objekte instanziieren können, müssen abstrakte Klassen geerbt werden, bevor sie verwendet werden können. Aus diesem Grund wird normalerweise während der Entwurfsphase entschieden, ob eine abstrakte Klasse entworfen werden soll.
Die übergeordnete Klasse enthält allgemeine Methoden für die Sammlung untergeordneter Klassen. Da die übergeordnete Klasse selbst jedoch abstrakt ist, können diese Methoden nicht verwendet werden.
In Java stellen abstrakte Klassen eine Vererbungsbeziehung dar. Eine Klasse kann nur eine abstrakte Klasse erben, aber eine Klasse kann mehrere Schnittstellen implementieren.
2. Warum abstrakte Klassen verwenden? Wozu dienen abstrakte Klassen?
Ich frage mich immer, warum wir auf abstrakte Klassen verweisen müssen. Reichen gewöhnliche Klassen nicht aus? In allgemeinen Klassen definierte Methoden können auch von Unterklassen überschrieben werden. Es ist nicht erforderlich, sie als abstrakt zu definieren.
Tatsächlich ist es nicht so, dass abstrakte Klassen tatsächlich die Anwendungsanforderungen erfüllen können. In Wirklichkeit gibt es jedoch tatsächlich einige Methoden in übergeordneten Klassen, die nicht geschrieben werden müssen, da dies auf jeden Fall der Fall ist unterschiedlich sein, daher besteht keine Notwendigkeit, es in die übergeordnete Klasse zu schreiben. Natürlich können Sie alle abstrakten Klassen auch als nicht-abstrakte Klassen schreiben, dies ist jedoch nicht notwendig.
Schreiben Sie es als abstrakte Klasse, damit Sie, wenn andere Ihren Code sehen oder Sie den Code anderer Leute sehen, auf die abstrakte Methode achten und wissen, dass diese Methode in einer Unterklasse implementiert ist, sodass sie eine auffordernde Wirkung hat.
3. Der Unterschied zwischen abstrakten Klassen und Schnittstellen
Abstrakte Klassen
Abstrakte Klassen werden verwendet, um die gemeinsamen Merkmale von Unterklassen zu erfassen. Sie kann nicht instanziiert werden und kann nur als Oberklasse für Unterklassen verwendet werden. Abstrakte Klassen sind Vorlagen, die zum Erstellen von Unterklassen in der Vererbungshierarchie verwendet werden.
Schnittstelle
Eine Schnittstelle ist eine Sammlung abstrakter Methoden. Wenn eine Klasse eine Schnittstelle implementiert, erbt sie die abstrakten Methoden dieser Schnittstelle. Dies ähnelt dem Vertragsmuster. Wenn Sie diese Schnittstelle implementieren, müssen Sie sicherstellen, dass diese Methoden verwendet werden. Eine Schnittstelle ist nur ein Formular, sie kann selbst nichts tun.
Vergleich abstrakter Klassen und Schnittstellen
Wann abstrakte Klassen und Schnittstellen verwendet werden sollten
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmieren lernen! !
Das obige ist der detaillierte Inhalt vonWelche Rolle spielen abstrakte Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!