Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
faecher:informatik:oberstufe:modellierung:vererbung:besser:start [10.11.2021 18:10] – [Tabelle] sbel | faecher:informatik:oberstufe:modellierung:vererbung:besser:start [12.10.2023 09:56] (aktuell) – [Besser mit Vererbung] Svenja Müller |
---|
====== Besser mit Vererbung ====== | ====== Besser mit Vererbung ====== |
| |
Die beiden Arten von Posts sind sich sehr ähnlich und teilen sich zahlreiche Attribute und Methoden. Es existiert also gewissermaßen eine "übergeordnete Klasse "(//Superklasse//, //Super// im Sinne von englisch "oberhalb"), die bereits zahlreiche gemeinsame Aspekte abdecken. Die Postarten müssen dann nur noch die Unterschiede definieren. Diese Super-Klasse könnte z.B. ''Post'' heißen. | Die beiden Arten von Beiträgen sind sich sehr ähnlich und teilen sich zahlreiche Attribute und Methoden. Es existiert also gewissermaßen eine "übergeordnete Klasse "(//Superklasse//, //Super// im Sinne von englisch "oberhalb"), die bereits zahlreiche gemeinsame Aspekte abdeckt. Die Beitragsarten müssen dann nur noch die Unterschiede definieren. Diese Super-Klasse könnte z.B. ''Beitrag'' heißen, denn die beiden Beitragsarten sind ja auch beides "Beiträge". |
| |
---- | ---- |
=== (A1) === | === (A1) === |
| |
Notiere, welche Attribute/Methoden die Super-Klasse haben sollte und in welchen welche Attributen und Methoden sich die beiden Arten von Posts unterscheiden: | Notiere, welche Attribute/Methoden die Super-Klasse haben sollte und in welchen welche Attributen und Methoden sich die beiden Arten von Beiträgen unterscheiden: |
| |
^ Post ^ PhotoPost ^ TextPost ^ | ^ ^ Beitrag ........ ^ PhotoBeitrag ...... ^ TextBeitrag ...... ^ |
| Attribute | \\ \\ \\ | | | | Attribute | | \\ \\ \\ | | |
| Methoden | \\ \\ \\ | | | | Methoden | | \\ \\ \\ | | |
| |
| |
| ==== Darstellung im UML-Diagramm ==== |
| |
| Nun benötigt man noch eine Darstellung, die veranschaulicht, dass die gemeinsamen Attribute und Methoden der Superklasse auch den "abgeleiteten" Klassen zur Verfügung stehen. In einem Entwurfs/Implementationsdiagramm stellt man das durch Pfeile mit leeren Pfeilspitzen von der abgeleiteten Klasse zur Super-Klasse dar: |
| |
| {{ :faecher:informatik:oberstufe:modellierung:vererbung:besser:vererbung_soz_net.drawio.png |}} |
| |
| Das bedeutet, die Klassen ''TextBeitrag'' und ''PhotoBeitrag'' **erweitern** die Klasse ''Beitrag'' - sie **erben** alle Attribute und Methoden der Super-Klasse, können aber eigene Attribute und Methoden hinzufügen. |
| |
| ==== Vererbung ganz praktisch ==== |
| |
| * Definiere die **Superklasse**: ''Beitrag'' |
| * Definiere **Unterklassen** für ''TextBeitrag'' und ''PhotoBeitrag'' |
| * Die Superklasse legt gemeinsame Attribute und Methoden fest |
| * Die Unterklassen **erben** die Eigenschaften der Superklasse. |
| * Die Unterklassen fügen weitere, unterschiedliche Eigenschaften hinzu. |
| |
| |
| |
| ==== Wie sieht das im Java Code aus? ==== |
| |
| {{ :faecher:informatik:oberstufe:modellierung:vererbung:besser:auswahl_089.png |}} |
| |
| ---- |
| {{:aufgabe.png?nolink |}} |
| === (A2) === |
| |
| Implementiere die Klassendefinitionen der Klassen ''Beitrag'', ''PhotoBeitrag'' und ''TextBeitrag'' mit ihren Attributen, aber zunächst ohne Konstruktoren und Methoden. |
| |
| ---- |
| === Material === |
| |
| {{simplefilelist>.:*}} |
| |