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.
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 …
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, …
Ist es besser, List<string>in Typanmerkungen oder StringListwo zu verwendenStringList class StringList : List<String> { /* no further code!*/ } Ich lief in mehr von ihnen in Irony .
Ich habe vor kurzem angefangen, mich mit Android-Entwicklung zu beschäftigen. Dies hat mich zurück in die Welt der Java-Softwareentwicklung geführt. Das letzte Mal, als ich mit Java gearbeitet habe, habe ich OOP zugegebenermaßen nicht annähernd so gut verstanden wie jetzt (glaube ich). Nachdem ich in meiner Karriere hauptsächlich C # …
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 = …
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 …
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 …
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 …
Wenn meine Klasse implementseine Schnittstelle ist, kann ich dann sagen, dass ich der Vererbung folge? Ich weiß, wenn eine Klasse eine extendsandere Klasse ist, dann ist es Vererbung.
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 …
Vererbung, Polymorphismus und Verkapselung sind die drei wichtigsten Merkmale von OOP, und von diesen hat Vererbung heutzutage eine hohe Nutzungsstatistik. Ich lerne JavaScript und hier sagen alle, dass es eine prototypische Vererbung hat, und die Leute sagen überall, dass es etwas ganz anderes ist als die klassische Vererbung. Ich kann …
Ich frage mich, was in Bezug auf gutes OOP-Design, sauberen Code, Flexibilität und Vermeidung von Codegerüchen in Zukunft besser ist. Bildsituation, in der Sie viele sehr ähnliche Objekte haben, die Sie als Klassen darstellen müssen. Diese Klassen haben keine spezifische Funktionalität, sind nur Datenklassen und unterscheiden sich nur durch Namen …
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. …
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 …
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 …
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.