Fachinformatiker Prüfungsvorbereitung

Diese Webseite ist momentan nicht responsiv. Bitte öffnen Sie sie auf einem größeren Bildschirm.

Klassenhierarchie

Eine Klassenhierarchie beschreibt die Struktur von Klassen in einem objektorientierten System, bei dem Klassen voneinander erben. Dies hilft dabei, Gemeinsamkeiten und Unterschiede zwischen Klassen klar darzustellen und eine bessere Organisation von Code zu erreichen. Durch Vererbung können Unterklassen (Subklassen) die Eigenschaften und Methoden von Oberklassen (Superklassen) erben und erweitern.

Wichtige Merkmale einer Klassenhierarchie

  • Oberklasse (Superklasse): Die Oberklasse ist die allgemeine Klasse, von der andere Klassen erben. Sie enthält die allgemeinen Attribute und Methoden, die von mehreren Klassen geteilt werden können.
  • Unterklasse (Subklasse): Die Unterklasse erbt von der Oberklasse. Sie kann zusätzliche Attribute und Methoden haben oder die von der Oberklasse geerbten Methoden überschreiben (Methodenüberschreibung).
  • Vererbung: Vererbung ermöglicht es, Code wiederzuverwenden und gemeinsame Funktionalitäten in der Oberklasse zu definieren, sodass sie in mehreren Subklassen genutzt werden können.
  • Polymorphismus: Subklassen können Methoden der Oberklasse auf verschiedene Arten implementieren, was die Flexibilität und Erweiterbarkeit des Systems erhöht.

Vor und Nachteile der Klassenhierarchie

Vorteile

  • Erlaubt Wiederverwendung von Code durch Vererbung.
  • Fördert eine klarere Organisation und Strukturierung von Klassen in großen Projekten.
  • Ermöglicht polymorphes Verhalten, bei dem Subklassen die Funktionalität der Oberklasse anpassen können.

Nachteile

  • Kann zu starren Strukturen führen, wenn die Hierarchie zu tief oder komplex wird.
  • Fehler in Oberklassen können sich auf alle Subklassen auswirken, was schwer zu debuggen sein kann.

Aktivität: Erstellen einer Klassenhierarchie

Ihr Kunde möchte zukünftig eine neue Support-Software verwenden, die die Verwaltung von Support-Tickets für verschiedene Kundentypen vereinfachen soll. Sie möchten eine Klassenhierarchie entwerfen, welche die gemeinsamen Eigenschaften und Methoden für die Verwaltung von Support-Tickets abbildet.

Sie möchten zwei spezialisierte Support-Ticket-Klassen erstellen:

  • Software-Support-Ticket: Eigenschaften: Ticketnummer, Erstellungsdatum, Beschreibung, Betriebssystem, Softwareversion. Methoden: Fehlerdiagnose(), Ticketstatusaktualisierung(), Softwareaktualisierung().
  • Hardware-Support-Ticket: Eigenschaften: Ticketnummer, Erstellungsdatum, Beschreibung, Gerätetyp, Seriennummer. Methoden: Fehlerdiagnose(), Ticketstatusaktualisierung(), Reparatur().

Die Fehlerdiagnose erfolgt beim Hardware-Support-Ticket und beim Software-Support-Ticket unterschiedlich. Zusätzliche Konstruktoren, Zugriffsmodifikatoren und Methoden werden nicht benötigt.

Aufgabe: Erstellen Sie eine sinnvolle Klassenhierarchie mit einer gemeinsamen übergeordneten Klasse "Kundenticket".

Lösung

Beispiel einer Klassenhierarchie