C-Programmierung

Beispiel zu Basisklassen und Klassenhierarchien

Vererbung | | Sichtbarkeitsbereiche

Ist eine Klasse B von A abgeleitet, so ist A eine Basisklasse von B. B besitzt dadurch alle Eigenschaften von A.

Ein Beispiel dazu anhand einiger Eigenschaften von Lebensmitteln:

  • Lebensmittel: hat Name, Gewicht
  • Bio: hat Biozertifikat
  • Obst: hat Gewicht, Name, Sorte
  • Bio-Obst: Obst mit Biozertifikat
  • Bio-Apfel: Obst mit Biozertifikat der Sorte Apfel
  • Bio-Birne: Obst mit Biozertifikat der Sorte Birne

Bio-Obst ist in obiger Darstellung eine natürliche Basisklasse von Bioäpfeln und Biobirnen, da diese alle Eigenschaften besitzen, die ein Bio-Obst auszeichnen.

Entsprechende Klassenhierarchie von Lebensmitteln:

Biozertifikat Lebensmittel
    .        /
     .      /               ----- Ableitung
      .   Obst              ..... Aggregation
       .    |
        .   |
         Bio-Obst
            |    \
            |     \
         Bio-Apfel Bio-Birne

Die Ableitung von Basisklassen mit allgemeinen Eigenschaften vermeidet redundanten Code in den spezialisierten abgeleiteten Klassen (Stichwort generische Programmierung). Selbiges gilt sinngemäß für die Aggregation.

Durch die Ableitung von einer einzigen Basisklasse wird außerdem inkonsistenter Code vermieden, der z.B. durch Duplikation einer Klasse mittels Copy&Paste entstehen kann. Copy&Paste von Klassen ist daher in der Regel Ausdruck eines unsauberen Programmierstils → Abhilfe durch Refactoring.

Auch Copy&Paste von Code-Fragmenten ist vielfach schon schlechter Programmierstil, da man dasselbe Ziel durch den generischen Einsatz einer Funktion erreichen könnte.

Vererbung | | Sichtbarkeitsbereiche

Options: