Als «inheritance» getaggte Fragen

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.


2
Warum unterstützt Java keine private / geschützte Vererbung wie C ++? [geschlossen]
Aus heutiger Sicht passt diese Frage nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich Debatten, Argumente, Abstimmungen oder erweiterte Diskussionen hervorrufen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden …


5
Sollte ich in diesem Szenario Komposition oder Vererbung bevorzugen?
Betrachten Sie eine Schnittstelle: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Diese Schnittstelle wird von einer Reihe von Klassen implementiert, die Wellen unterschiedlicher Form erzeugen (z. B. SineWaveGeneratorund SquareWaveGenerator). Ich möchte eine Klasse implementieren, die SoundWavebasierend auf Musikdaten und nicht auf Rohtondaten generiert . Es würde den Namen …




5
Ist es jemals in Ordnung, den LSP zu verletzen?
Ich verfolge diese Frage , aber ich konzentriere mich von Code auf ein Prinzip. Nach meinem Verständnis des Liskov-Substitutionsprinzips (LSP) müssen alle Methoden in meiner Basisklasse in meiner Unterklasse implementiert werden, und laut dieser Seite, wenn Sie eine Methode in der Basisklasse überschreiben und sie nichts tut oder eine auslöst …

1
Gibt es eine Situation, in der es besser wäre, schwache Referenzen anstelle einer einfachen Komposition zu verwenden?
Obwohl in den Java-Dokumenten angegeben ist, dass schwache Referenzen in erster Linie zur Kanonisierung von Zuordnungen dienen, finden Sie im Internet viele , viele , viele Leute, die angeben, dass die WeakHashMap perfekt zum Speichern von Objektmetadaten während ihrer Lebensdauer geeignet ist. Es stört jedoch niemanden, ein verständliches UND angemessenes …



12
Ist "Wenn eine Methode ohne Änderungen wiederverwendet wird, fügen Sie die Methode in eine Basisklasse ein, andernfalls erstellen Sie eine Schnittstelle" eine gute Faustregel?
Ein Kollege von mir hat eine Faustregel für die Auswahl zwischen der Erstellung einer Basisklasse oder einer Schnittstelle entwickelt. Er sagt: Stellen Sie sich jede neue Methode vor, die Sie implementieren möchten. Für jeden von ihnen, bedenken Sie: Diese Methode wird von mehr als einer Klasse implementiert werden , in …

2
Warum wird von der Verwendung von Konstruktoren beim Erstellen von Prototypen abgeraten?
Kurzer Hintergrund: In JavaScript hat die Konstruktorfunktion für jeden Objekttyp eine prototypeEigenschaft. Das prototypebezieht sich auf ein Objekt, das jedes konstruierte Objekt als nächsten Schritt in seiner Prototypenkette verwendet. Wenn ein Typ einem anderen Typ inhärent sein soll, können Sie prototypeden untergeordneten Typ auf eine neue Instanz des übergeordneten Typs …



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.