Ich verstehe, dass abstrakte Klassen Klassen sind, die deklarierte Methoden enthalten, die nicht notwendigerweise eine bestimmte Implementierung haben, da der Code stattdessen in der Child-Klasse deklariert werden müsste verstehen das OOP-Konzept hinter der Einführung von Schnittstellen.OOP Principle Unterschiede zwischen Interfaces und abstrakten Klassen
Welche architektonischen und prinzipiellen Unterschiede gibt es zwischen Schnittstellen und abstrakten Klassen, wenn die abstrakte Klasse keine definierten Methoden und Zustände besitzt (abgesehen davon, dass abstrakte Klassen Konstruktoren haben können)?
Darüber hinaus warum sollte jemand abstrakte Klassen und Schnittstellen überhaupt verwenden? Ich verstehe, dass Ihr Code dadurch eingeschränkt wird, dass Personen keine definierten Unterklassen ohne angegebene Methoden definieren können, der Code jedoch genau so funktionieren würde, wenn die nicht implementierten deklarierten Methoden in der Schnittstelle und in der abstrakten Klasse nicht vorhanden wären. Was also ist der implizierte Vorteil, Methoden ohne Implementierung zu schreiben, um sie später in der Unterklasse zu implementieren?
Ich habe viele Beiträge zu Interface vs Abstract Classes gesehen, aber ich bin an den prinzipiellen Unterschieden zwischen den beiden interessiert, nicht an ihren funktionalen Unterschieden.
Zu mir Schnittstelle ist ein Mittel, Vertrag mit dem Verbraucher der API - für .e. z. eine Autoschnittstelle - sollte vier Räder haben, sollte Lenkrad haben - keine Ausnahmen. Wo abstrakte Klassen das Verhalten eines Objekts wie z. ein Lebewesen - ein Objekt sehr abstrakt, dass es viele verschiedene Verhaltensweisen gibt. Stellen Sie also eine lebende Sache als abstrakte Klasse dar – SomeDude
haben Sie das zuerst googlen? Dieses Thema wurde hier zu Tode bearbeitet. Es gibt sicherlich Antworten, die sich mit diesem Thema beschäftigen. –
Ich habe es googlen ... auch zu Tode. Ich habe diesen "Aha" -Moment immer noch nicht durchgemacht und ich habe keine Probleme mehr, – alaboudi