1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme...

33
1

Transcript of 1. Generalisierung/Spezialisierung Subtypisierung/Vererbung Bringt Struktur in die Klassen-Diagramme...

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