Vererbung ist eine Möglichkeit, den Code vorhandener Objekte wiederzuverwenden oder einen Subtyp aus einem vorhandenen Objekt oder aus beiden zu erstellen, abhängig von der Unterstützung der Programmiersprache.
Ich lerne groovig und habe gerade etwas über die neue Funktion gelernt, die in 2.3 hinzugefügt wurde, nämlich das Hinzufügen von Eigenschaften . Jetzt scheint es mir, als ob Traits es Ihnen ermöglichen, im Grunde alles zu tun, was eine Superklasse und ein Interface können. Macht das Hinzufügen von Merkmalen …
Eine schnelle Suche in diesem Stapelaustausch zeigt, dass die Komposition im Allgemeinen als flexibler als die Vererbung angesehen wird, aber wie immer vom Projekt usw. abhängt und es Zeiten gibt, in denen die Vererbung die bessere Wahl ist. Ich möchte ein 3D-Schachspiel machen, bei dem jede Figur ein Netz hat, …
Nach einigen Recherchen kann ich anscheinend kein einfaches Beispiel finden, um ein Problem zu lösen, auf das ich häufig stoße. Angenommen, ich möchte eine kleine Anwendung erstellen Square, in der ich s, Circles und andere Formen erstellen , sie auf einem Bildschirm anzeigen, ihre Eigenschaften nach Auswahl ändern und dann …
Gibt es eine anständige Lösung für das Fehlen von Generika in PHP, die eine statische Codeprüfung ermöglichen, um die Typkonsistenz festzustellen? Ich habe eine abstrakte Klasse, die ich unterordnen möchte, und erzwinge auch, dass sich eine der Methoden von der Verwendung eines Parameters eines Typs zur Verwendung eines Parameters ändert, …
Unabhängig davon, ob ein Objekt physisch existiert oder nicht, können wir es auf verschiedene Arten modellieren. In vielen Fällen könnten wir willkürlich Verallgemeinerung oder Komposition verwenden. Das GoF-Prinzip "Komposition gegenüber Verallgemeinerung bevorzugen" führt uns jedoch zur Verwendung von Komposition. Wenn wir beispielsweise eine Linie modellieren, erstellen wir eine Klasse, die …
Ich arbeite in einem System, das auf zwei Arten eine "Versandschätzung" darstellen kann: Ein bestimmtes Datum: Der Artikel wird garantiert zu diesem Datum versendet Ein Tagesintervall: Der Artikel wird ab heute "X bis Y" Tage versendet Die Informationen zum Modell sind semantisch identisch, es handelt sich um "die Versandschätzung". Wenn …
Ich habe eine unerwartete Situation in einem Projekt, in dem alle Typen, die eine Klasse erweitern, in eine Java-Sammlung gepackt werden. Aber nur eine bestimmte Erweiterung dieser Klasse enthält eine zusätzliche Methode. Nennen wir es "also ()"; und lassen Sie mich klar sein, dass keine andere Erweiterung es hat. Kurz …
Ich habe mehrere Klassen Parentund Child1... Child9in Java implementiert. Parentist eine abstrakte Klasse, die alle allgemeinen Variablen der untergeordneten Klassen enthält (viel, was der Hauptgrund ist, warum ich Parenteine abstrakte Klasse und keine Schnittstelle erstellt habe), einige abstrakte und einige implementierte Methoden. Einige der untergeordneten Klassen verfügen über benutzerdefinierte Methoden, …
Etwas, worüber ich vorher wirklich nicht nachgedacht habe (AS3-Syntax): private var m_obj:Object; protected function get obj():Object { return m_obj; } private var m_str:String; protected function get str():String { return m_str; } Zumindest Unterklassen können m_obj oder m_str nicht setzen (obwohl sie m_obj noch ändern könnten). Meine Frage: Ist das nur …
Ich habe in letzter Zeit ziemlich viel darüber nachgedacht, wie man OOP in JS macht, insbesondere wenn es um Kapselung und Vererbung geht. Laut Crockford ist klassisch aufgrund von new () schädlich, und sowohl prototypisch als auch klassisch sind begrenzt, da die Verwendung von constructor.prototype bedeutet, dass Sie keine Verschlüsse …
Vor sechs Monaten stellte ich eine Frage zu Modellierungsdaten für meine App und erhielt einige Ratschläge, die mich auf STI hinwiesen ( Einzelheiten finden Sie unter Rails-Datenmodell - Best Practices-Frage ). Ich habe damit herumgespielt, es etwas zum Laufen gebracht, mich dann abgelenkt und das Projekt unterbrochen. Ich habe gerade …
In C # mit einem geerbten Klassensatz - sollten wir beim Aufrufen einer Methode die Schlüsselwörter 'base.methodname und this.methodname' verwenden ... unabhängig davon, ob es sich um eine überschriebene Methode handelt oder nicht? Der Code wird wahrscheinlich Änderungen in Bezug auf die Logik erfahren, und möglicherweise treten zu einem späteren …
Soweit ich weiß, basiert die Terminologie darauf, wie die Vererbungshierarchie traditionell angezeigt wird, wobei die erweiterten Typen unten und die übergeordneten Typen oben angezeigt werden. Dies ist ein bisschen sinnlos, es sei denn, Sie möchten die folgenden Links- und Rechtssendungen aufrufen . Ich suche keine Meinungen, warum die Terminologie so …
Ich habe ungefähr 8 Jahre lang codiert, aber ich finde immer noch, dass die Vererbung zu flexibel ist und Sie manchmal völlig verwirrt mit dem Code ist, den Sie geschrieben haben. Ein einfachstes Beispiel wäre: abstract class AClass { protected void method1() { if(check()) { do1(); } else { do2(); …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.