33
1

1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Embed Size (px)

Citation preview

Page 1: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

1

Page 2: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Generalisierung/SpezialisierungSubtypisierung/VererbungBringt Struktur in die Klassen-

DiagrammeErhöht die WiederverwendbarkeitErlaubt die schrittweise Verfeinerung

2

Page 3: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Motivation: Problem der Wiederverwendung

3

Page 4: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Motivation; cont‘d

4

Keine Wiederverwendung

Angestellte können nurPersonen heiraten???

Page 5: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

5

Page 6: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Subtypisierung: Overtyp/Untertyp

6

Page 7: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Generalisierung/Spezialisierung

7

Page 8: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

extends

8

Page 9: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Substituierbarkeit: Typ-Sicherheit immer noch gewährleistet

9

Page 10: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Vererbung: am Beispiel erläutert(eine Subtyp-Instanz „kann mehr“)

10

Page 11: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Generalisierung-Hierarchie

11

Page 12: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

12

Page 13: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

13

Wurzeltyp: Object

Page 14: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

14

Page 15: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

15

Page 16: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

16

Page 17: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

17

Page 18: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

18

Verfeinerung / refinement

Page 19: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

19

Verfeinerung / refinementnochmals

Page 20: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Dynamisches Binden

20

Page 21: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

21

Unterschiedliche Opswerden dyn. gebunden

Page 22: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Substituierbarkeit: Eine Untertyp-Instanz kann eine Obertyp-Instanz substituieren – nicht umgekehrt

22

Page 23: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Beispiele für die Typisierungsregeln

23

Page 24: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Weiteres Beispiel (7)

24

Page 25: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Abstrakte/Virtuelle Klassen &Schnittstellen/Interfaces Deklaration von Methoden ohne deren Implementierung

schon durchzuführen Interface:

nur DeklarationenEine Klasse kann mehrere Schnittstellen implementieren

Abstrakte Klasse:Einige Methoden können schon implementiert werdenAndere nur deklariertVirtuelle Klasse kann man nicht instanziieren

25

Page 26: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Abstrakte Klasse: GeoPrimitive

26

Page 27: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Erweiterung der abstrakten Klasse

27

Page 28: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Nutzung der abstrakten Klasse

28

Page 29: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Hierarchiemit abstraktenKlassen

29

Selbstabstrakt

Page 30: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

30

Page 31: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Schnittstellen / Interfaces

31

Page 32: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

32

Page 33: 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme Erhöht die Wiederverwendbarkeit Erlaubt die schrittweise

Typ-Anfragen und Type-Casting

33