KIO
Kreative Ideen online
Über Erbschaften

Über Erbschaften

Einfache Regeln für den Aufbau einer besseren Erbschaftsgestaltung.

DO benutze Erbgut, wenn eine Klasse ein spezieller Typ einer Superklasse ist. Beispiel: Toyota ist ein spezieller Typ von Auto, Toyota erweitert Car macht Sinn.

DO erwägt die Vererbung, wo Sie ein Verhalten (implementierter Code) haben, das auf mehrere Klassen des gleichen allgemeinen Typs aufgeteilt werden sollte. Beispiel: Katze, Hund, Pferd müssen sich alle bewegen (), schlafen (), so setzen, dass Funktionalität in einer Superklasse "Animal" migth sinnvoll ist, und macht für eine einfachere Wartung und Extensibilität. Seien Sie sich bewusst, dass die Erbschaft zwar eines der Hauptmerkmale objektorientierter Programmierung ist, aber nicht unbedingt der beste Weg ist, um eine Wiederverwendung des Verhaltens zu erreichen.

Verwenden Sie keine Erbschaft, nur so dass Sie Code von einer anderen Klasse wiederverwenden können, f die Beziehung zwischen der Superklasse und Unterklasse verletzen eine der beiden oben genannten Regeln. Stellen Sie sich zum Beispiel vor, Sie haben in der Alarmklasse einen speziellen Druckcode geschrieben und jetzt brauchen Sie in der Piano-Klasse Druckcode, so dass Sie den Piano so ausstrecken können, dass Piano den Druckcode erbt. Das macht keinen Sinn! Ein Piano ist kein spischerer Alarm

Verwenden Sie keine Erbschaft, wenn die Unterklasse und die Superklasse den IS-A/HAS-A-Test nicht bestehen. Fragen Sie sich immer, ob die unterklassige IS-A spezieller Typ für die Superklasse. Beispiel: Tea-IS-A-Getränk macht Sinn Getränkedorfer IS-A-Tee nicht

  • Eine Unterklasse verlängert eine Superklasse
  • Eine Unterklasse erbt alle öffentlichen Instanzvariablen und-methoden der Superklasse, erbt aber nicht die privaten Instanzvariablen und-methoden der Superklasse.
  • Vererbte Methoden können überschrieben werden; Instanzvariablen können nicht überschrieben werden (obwohl die ca in der Unterklasse neu definiert werden, aber das ist nicht dasselbe, und es ist fast nie notwendig, es zu tun)
  • Verwenden Sie den IS-A-Test, um zu überprüfen, ob Ihre Erbschaft hierachy gültig ist. Wenn X Y ausdehnt, dann muss X IS-A Y Sinn machen
  • Die IS-A-Beziehung funktioniert nur in eine Richtung. Ein Hippo ist ein Tier, aber nicht alle Tiere sind Hippos
  • Wenn eine Methode in einer Unterklasse überschrieben wird und diese Methode auf eine Instanz der Unterklasse aufgerufen wird, wird die überzogene Version der Methode aufgerufen. (Der niedrigste gewinnt)
  • I f Klasse B erweitert AA, und C erweitert B, Klasse B IS-A-Klasse A und Klasse C IS-A

Was also kauft Sie wirklich von dieser Erbschaft?

Sie erhalten eine Menge OO-Meilensteider, indem Sie mit Erbschaft entwerfen. Sie können den doppelten Code loswerden, indem Sie das Verhalten vommon auf eine Gruppe von Klassen abstrapieren und diesen Code in einer Superklasse kleben. Auf diese Weise, wenn Sie es ändern müssen, haben Sie nur einen Ort zu aktualisieren, und die Änderung ist magisch in allen Klassen, die dieses Verhalten erben, reflektiert … Machen Sie den Wechsel und stellen Sie den Klassenerhalt wieder zusammen. Das ist es.

Sie müssen die Unterklassen nicht berühren!

Liefern Sie einfach die neu gechagte Superklasse, und alle Klassen, die sie erweitern, werden automatisch die neue Version verwenden. Ein Java-Programm ist nichts anderes als ein Stapel Klassen, so dass die Unterklassen nicht neu kompiliert werden müssen, um die neue Version der Superklasse zu verwenden. Solange die Superklasse nichts für die Unterklasse kaputt macht, ist alles gut. Brechen heißt … Etwas in der Superklasse zu ändern, von dem die Unterklasse abhängt, wie eine bestimmte Methodenargumente oder geben tpye oder Methodenname zurück.

  1. Sie vermeiden es, dass der geme
    insame Code an einer Stelle kopiert wird, und lassen Sie den Code von der Unterschicht von einer Superklasse erben. Wenn Sie dieses Verhalten ändern wollen, müssen Sie es nur an einem Ort ändern.
  2. Sie definieren ein
    gemeinsames Protokoll für eine Gruppe von Klassen. Mit anderen Worten … "Alle meine Unterklassen können diese Dinge tun, mit diesen Methoden, die so aussehen"

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert