Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Objektorientierte Vererbung
Person haarfarbe :String Student erbt von Person: extensional: Menge der Studenten ist Teilmenge der Personen Typsicht: Person p = new Student (); ist zuweisungskompatibel. Substituierbarkeit: Studenten haben alle Eigenschaften von Personen Student matNr :Integer Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
2
Polymorphie durch Methodenredefinition:
Person haarfarbe :String payLunch () Prof topic :String payLunch () Student matNr :Integer payLunch () Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
3
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel
4
Mehrfachvererbung Person haarfarbe :String payLunch () Prof Student
topic :String payLunch () Student matNr :Integer payLunch () Zwitter Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
5
Caveats: Person Attributüberdeckung Student
Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
6
Caveats: Person Methodenredefinition und Parameter Student
Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
7
Caveats: Person Initialisierung Student
Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
8
Caveats: Person Student
Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
9
Klassische Streitfragen
Rechteck Quadrat Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
10
Wann Vererbung verwenden?
im Zweifel gar nicht Auslagern gemeinsamer Eigenschaften Design Pattern Libraries / Frameworks Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
11
Wann Vererbung verwenden?
im Zweifel gar nicht Auslagern gemeinsamer Eigenschaften Design Pattern Libraries / Frameworks Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
12
Strategy Pattern ersetze if-then-else-if Ketten
Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
13
If-then-else-if Kette:
House run () ring () mode : int Struktur Verhalten Daten public void ring () { if (mode == SIRENE) { …} else if (mode == FLASH) { …} else if (mode == MAIL) { …} … Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
14
Strategy Pattern: alarm :House :FlashLight class House {
ring () Alarm ring () alarm FlashLight ring () Sirene ring () MailAlarm ring () Struktur Verhalten Daten :House :FlashLight class House { public void ring () { alarm.ring (); } :Sirene :MailAlarm Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
15
Strategy Pattern: alarm :House :FlashLight :Sirene :MailAlarm House
ring () Alarm ring () alarm FlashLight ring () Sirene ring () MailAlarm ring () Struktur Verhalten Daten :House :FlashLight :Sirene :MailAlarm Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
16
Strategy Pattern: Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
17
Wann Vererbung verwenden?
Fazit: Vererbung zur Strukturierung von Daten eher selten Hauptsächlich Strukturierung von Programmen Verwendung bei großen Programmen Bibliotheks-Komponenten Rahmenwerken Vorlesungen: Software Engineering 1 und Software Engineering 2 Design Pattern Programmiermethodik SS © 2005 Albert Zündorf, University of Kassel
18
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel
19
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.