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.

5
Wie definiert man, dass eine Methode eine stärkere Verpflichtung überschreiben kann als die Definition, dass eine Methode aufgerufen werden kann?
Von: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Ich denke, das stimmt auch nach zehn Jahren noch. Vererbung ist eine coole Möglichkeit, das Verhalten zu ändern. Aber wir wissen, dass es spröde ist, weil die Unterklasse leicht Annahmen über den Kontext treffen kann, in dem eine Methode aufgerufen wird, die sie überschreibt. Aufgrund des …

5
Wann sollte ich eine Java-Swing-Klasse erweitern?
Nach meinem derzeitigen Verständnis der Vererbungsimplementierung sollte eine Klasse nur erweitert werden, wenn eine IS-A- Beziehung vorhanden ist. Wenn die übergeordnete Klasse über spezifischere untergeordnete Typen mit unterschiedlicher Funktionalität verfügen kann, jedoch gemeinsame, im übergeordneten Element abstrahierte Elemente aufweist. Ich stelle dieses Verständnis in Frage, weil mein Java-Professor uns empfiehlt, …



5
Sind Python-Mixins ein Anti-Pattern?
Mir ist völlig bewusst, dass pylintund andere statische Analysewerkzeuge nicht allwissend sind, und manchmal müssen ihre Ratschläge missachtet werden. (Dies gilt für verschiedene Nachrichtenklassen, nicht nur für conventions.) Wenn ich Unterricht haben möchte class related_methods(): def a_method(self): self.stack.function(self.my_var) class more_methods(): def b_method(self): self.otherfunc() class implement_methods(related_methods, more_methods): def __init__(self): self.stack = …

10
Ist es in Ordnung, Objekte zu haben, die sich selbst umwandeln, selbst wenn dadurch die API ihrer Unterklassen verschmutzt wird?
Ich habe eine Basisklasse Base. Es hat zwei Unterklassen Sub1und Sub2. Jede Unterklasse verfügt über einige zusätzliche Methoden. Zum Beispiel Sub1hat Sandwich makeASandwich(Ingredients... ingredients)und Sub2hat boolean contactAliens(Frequency onFrequency). Da diese Methoden unterschiedliche Parameter verwenden und völlig unterschiedliche Aufgaben ausführen, sind sie vollständig inkompatibel, und ich kann nicht einfach den Polymorphismus …

7
Warum werden Konstruktoren nicht vererbt?
Ich bin verwirrt, was die Probleme sein könnten, wenn ein Konstruktor von einer Basisklasse geerbt wurde. Cpp Primer Plus sagt: Konstruktoren unterscheiden sich von anderen Klassenmethoden darin, dass sie neue Objekte erstellen, während andere Methoden von vorhandenen Objekten aufgerufen werden . Dies ist einer der Gründe, warum Konstruktoren nicht vererbt …
33 c++  inheritance 

10
Ist "Parent x = new Child ();" anstelle von "Child x = new Child ();" eine schlechte Praxis, wenn wir die letztere verwenden können?
Zum Beispiel hatte ich einige Codes gesehen, die ein Fragment wie dieses erzeugen: Fragment myFragment=new MyFragment(); Dies deklariert eine Variable als Fragment anstelle von MyFragment. MyFragment ist eine untergeordnete Klasse von Fragment. Ich bin mit dieser Codezeile nicht zufrieden, da ich der Meinung bin, dass dieser Code wie folgt lauten …


7
Soll ich geerbte Methoden testen?
Angenommen , ich habe einen Klasse - Manager von einer Basisklasse abgeleiteten Mitarbeitern und dass Mitarbeiter haben eine Methode getEmail () , die von geerbt wird Manager . Soll ich testen, ob das Verhalten der getEmail () -Methode eines Managers tatsächlich dem eines Mitarbeiters entspricht? Zum Zeitpunkt der Erstellung dieser …



3
Gibt es OO-Sprachen ohne Vererbung?
Während einer Codeüberprüfung sagte heute ein Kollege von mir etwas Interessantes: prototypeist nur nützlich, wenn Sie Vererbung benötigen - und wann ist Vererbung jemals eine gute Idee ? Ich habe darüber nachgedacht und festgestellt, dass ich normalerweise Vererbung verwende, um Code zu umgehen, der von Anfang an schlecht entworfen wurde. …

3
Bestes Design für Windows-Formulare mit gemeinsamen Funktionen
In der Vergangenheit habe ich Vererbung verwendet, um die Erweiterung von Windows-Formularen in meiner Anwendung zu ermöglichen. Wenn alle meine Formulare über gemeinsame Steuerelemente, Grafiken und Funktionen verfügen würden, würde ich ein Basisformular erstellen, das die gemeinsamen Steuerelemente und Funktionen implementiert, und dann zulassen, dass andere Steuerelemente von diesem Basisformular …

3
Wie verstößt die Stärkung von Vorbedingungen und die Schwächung von Nachbedingungen gegen das Liskov-Substitutionsprinzip?
Ich habe gelesen, dass das Substitutionsprinzip von Liskov verletzt wird, wenn: Voraussetzungen sind gestärkt, oder Nachbedingungen werden geschwächt Aber ich verstehe noch nicht ganz, wie diese beiden Punkte das Liskov-Substitutionsprinzip verletzen würden. Kann jemand bitte mit einem Beispiel erklären. Wie kann eine der oben genannten Bedingungen dazu führen, dass ein …

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.