C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern"

Transkript

1 C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind

2 Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches Modell ab. Das Modell sollte maximal drei Ebenen besitzen. Einführung in die C++-Programmierung, Seite 2

3 Regeln Es werden alle öffentlichen Attribute und Methoden von der Basisklasse geerbt. Neue Attribute und Methoden können hinzufügt werden. Vorhandene Methoden können überlagert werden. Konstruktoren und Destruktoren werden nicht vererbt. Einführung in die C++-Programmierung, Seite 3

4 Beispiel Konto - kontonummer : string - pinnummer : string +abheben(float betrag) +einzahlen(float betrag) +eroeffnen +schliessen GiroKonto - dispo : float FestgeldKonto - laufzeit : int - zins : float Einführung in die C++-Programmierung, Seite 4

5 Basis- und Subklassen Basisklasse Fahrzeuge Subklasse Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Einführung in die C++-Programmierung, Seite 5

6 Erläuterung Die Subklasse (Unterklasse, abgeleitete Klasse) erbt von der Basisklasse alle öffentlichen Attribute und Methoden. beschreibt die speziellen Elemente einer Klasse. Die Basisklasse (Oberklasse) stellt ein Grundgerüst an Attribute und Methoden für eine bestimmte Kategorie von Klassen zur Verfügung. kann aber selber Subklasse einer anderen Basisklasse sein. Einführung in die C++-Programmierung, Seite 6

7 Generalisierung und Spezialisierung Spezialisierung Fahrzeuge Generalisierung Land Wasser Luft Schiene Motorisiert Unmotorisiert Unmoterisiert Motorisiert Flugzeug Zeppelin Heißluftballon Einführung in die C++-Programmierung, Seite 7

8 Hinweise Subklassen beschreiben Attribute und Methoden, die nur eine Klasse in einer bestimmten Kategorie von Klassen besitzt. Um so weiter man in der Hierarchie der Klassen nach unten geht, um so spezieller werden die Klassen. Basisklassen ermöglichen eine Zusammenfassung von gemeinsamen, allgemeinen Eigenschaften einer bestimmten Kategorie von Klassen. Um so weiter man in der Hierarchie der Klassen nach oben geht, um so unbestimmter sind die Klassen. Einführung in die C++-Programmierung, Seite 8

9 Basisklasse definieren class _CKonto{ protected: std::string kontonummer; std::string pinnummer; float kontostand; public: _CKonto(){}; _CKonto(std::string kontonr, std::string pin) { kontonummer = kontonr; pinnummer = pin; kontostand = 10.0; } // Methoden }; Einführung in die C++-Programmierung, Seite 9

10 Zugriffsrechte private: // Attribute Auf die Attribute kann nicht von außen zugegriffen werden. Die Subklasse kann auf diese Elemente nicht zugreifen. protected: // Attribute Nur die Subklasse sowie die Basisklasse kann auf die Elemente zugreifen. Für einen Zugriff von außen sind die Elemente gesperrt. public: // Methoden, Konstruktoren Die Methoden sind öffentlich zugänglich. Die Subklasse kann auf diese Methoden zugreifen. Einführung in die C++-Programmierung, Seite 10

11 Konstruktoren Der Standardkonstruktor sollte vorhanden sein. Es können allgemeine Konstruktoren definiert werden. Einführung in die C++-Programmierung, Seite 11

12 Subklasse definieren class _CGiroKonto : public _CKonto { private: int dispo; public: _CGiroKonto(std::string kontonr, std::string pin, int dispo=0) : _CKonto(kontoNr, pin), dispo(dispo){}; }; void setdispo(int neudispo){}; int getdispo(){ return dispo; }; Einführung in die C++-Programmierung, Seite 12

13 Kopf einer Subklasse class _CGiroKonto : public _Ckonto { Jede Subklasse beginnt wie die Basisklasse mit dem Schlüsselwort class. Dem Schlüsselwort folgt der Name der Subklasse. Der Doppelpunkt trennt den Namen der abgeleiteten Klasse von der Basisklassen-Liste. Einführung in die C++-Programmierung, Seite 13

14 Basisklassen-Liste class _CGiroKonto : public _Ckonto { Die Namen der Basisklassen, getrennt durch Kommata, werden aufgelistet. Die Liste wird vom Namen der abgeleiteten Klasse durch ein Doppelpunkt getrennt. Der Zugriff auf die Basisklasse wird spezifiziert. In den meisten Fällen ist der Zugriff ist öffentlich. Die Subklasse ist eine Teilmenge der Basisklasse. Die Zugriffsrechte der Basisklasse werden übernommen. Einführung in die C++-Programmierung, Seite 14

15 Zugriff Deklaration in der Basisklasse Zugriff auf die Basisklasse aus Sicht der Subklasse public public public public protected protected protected private private private public protected public protected protected protected protected private private private public private public private protected protected private private private private aus Sicht des Objekts Subklasse Einführung in die C++-Programmierung, Seite 15

16 Regeln für die Subklasse Jede Subklasse hat ein anonymes Objekt vom Typ Basisklasse eingebettet. Die Subklasse kann auf alle public- und protected-elemente der Basisklasse zugreifen. Die Subklasse kann eigene Methoden implementierten oder die Methoden aus der Basisklasse nutzen. Die Methoden aus einer Basisklasse können von der Subklasse überladen werden. Einführung in die C++-Programmierung, Seite 16

17 Regeln für die Basisklasse Die Basisklasse vererbt alle Elemente, bis auf Konstruktoren, Destruktoren und Zuweisungsoperatoren. Die Basisklasse wird nicht durch die Subklasse verändert. Es können beliebig viele Klassen von der Basisklasse abgeleitet werden. Einführung in die C++-Programmierung, Seite 17

18 Konstruktor public: _CGiroKonto(std::string kontonr, std::string pin, int dispo=0) : _CKonto(kontoNr, pin), dispo(dispo){}; Mit Hilfe der Initialisierungsliste werden die Anfangswerte für die verschiedenen Attribute gesetzt. In der Initialisierungsliste wird immer zuerst der Konstruktor der Basisklasse aufgerufen und anschließend die Attribute der Subklasse initialisiert. Die Reihenfolge der Attribute entspricht der Reihenfolge in den Klassen. Einführung in die C++-Programmierung, Seite 18

19 Polymorphie Vielgestaltigkeit, Ähnlichkeit. innerhalb einer Klasse: Methoden in einer Klasse werden überladen. bei der Vererbung von Klassen: Die Subklasse überschreibt eine Methode der Basisklasse. Die Subklasse nutzt virtuelle Methoden. Objekte einer Subklasse, die alle die gleiche Basisklasse nutzen, reagieren auf ein und dieselbe Nachricht unterschiedlich. Einführung in die C++-Programmierung, Seite 19

20 Überladende Methoden... besitzen den gleichen Namen. unterscheiden sich in dem Datentyp und / oder der Anzahl der Parameter. werden nicht mit Hilfe des Funktionstyps oder von Default- Parametern unterschieden. Einführung in die C++-Programmierung, Seite 20

21 Methoden in einer Klasse überladen class KUNDE{ public: void setadress(string strasse, string plz, string ort); void setadress(string nachname); }; void KUNDE::setAdress(string strasse, string plz, string ort) { kundestrasse = strasse; kundeplz = plz; kundeort = ort; } void KUNDE::setAdress(string nachname){ kundename = nachname; } Einführung in die C++-Programmierung, Seite 21

22 Methoden überschreiben Methoden aus der Basisklasse werden überdeckt. Geerbte Methoden werden mit einer neuen Funktionalität versehen. Die Methode aus der Basisklasse und der Subklasse besitzen den gleichen Methodenkopf. Nur die Anweisungen im Methodenrumpf werden verändert. Einführung in die C++-Programmierung, Seite 22

23 Methoden in der Basisklasse implementieren class _CKonto { protected: float kontostand; }; public: float hebeab(float betrag){ kontostand = kontostand - betrag; return kontostand; } Einführung in die C++-Programmierung, Seite 23

24 Methoden aus einer Basisklasse überschreiben class _CGiroKonto : public _CKonto{ private: int dispo; public: float hebeab(float betrag){ if ( (kontostand - betrag ) >= 0){ kontostand = kontostand - betrag; } else if ( (kontostand - betrag ) >= dispo){ kontostand = kontostand - betrag; } return kontostand; } }; Einführung in die C++-Programmierung, Seite 24

25 Hinweise Jede Methode aus der Basisklasse kann überschrieben werden. Die Methode besitzt in der Basisklasse und in der Subklasse den gleichen Methodennamen. Die Parameterliste in der Basisklasse sowie in der Subklasse sind gleich. Einführung in die C++-Programmierung, Seite 25

26 Aufruf der Methode // Aufruf der Methode in der Subklasse mygiro.hebeab(200); cout << "Kontostand:" << mygiro.getkontostand() << endl; // Aufruf der Methode aus der Basisklasse. mygiro._ckonto::hebeab(300); cout << "Kontostand:" << mygiro.getkontostand() << endl; Einführung in die C++-Programmierung, Seite 26

27 Virtuelle Methoden werden nur in der Basisklasse implementiert. definieren eine Schnittstelle für alle Subklassen der Basisklasse. werden in der Subklasse überschrieben. Die Methode kommt mit dem gleichen Namen und gleicher Parameterliste in der Subklasse vor. sind vom Typ des Objekts abhängig. Welcher Klasse gehört das Objekt an? benötigen einen virtuellen Destruktor. Einführung in die C++-Programmierung, Seite 27

28 Late Binding der virtuellen Methoden Späte Bindung oder dynamische Bindung. Beim Linken wird keine feste Sprungadresse für die Methode eingetragen. Der Methodenaufruf wird erst zur Laufzeit des Programms einer Methode zugeordnet. Einführung in die C++-Programmierung, Seite 28

29 Realisierung Jede Klasse mit virtuellen Methoden hat eine Virtual Method Table, in der die Adressen der virtuellen Methoden gespeichert sind. Ein Objekt einer polymorphen Klasse hat einen Virtual Method Pointer, der auf diese Tabelle zeigt. Einführung in die C++-Programmierung, Seite 29

30 in der Basisklasse implementieren class _CKonto { protected: float kontostand; }; public: virtual float hebeab(float betrag){ kontostand = kontostand - betrag; return kontostand; } Einführung in die C++-Programmierung, Seite 30

31 Kopf einer virtuellen Methode public: virtual float hebeab(float betrag){ beginnt immer mit dem Schlüsselwort virtual. Dem Schlüsselwort folgt der Name der virtuellen Methode. Eine virtuelle Methode hat eine Parameterliste. Einführung in die C++-Programmierung, Seite 31

32 Konstruktoren und Destruktoren Konstruktoren dürfen nicht virtuell sein. Zum Erzeugen von Objekten muss die Klasse zur Compilezeit festgelegt sein. Destruktoren können virtuell sein. Die Destruktoren werden dann immer in der Reihenfolge Kind Eltern abgearbeitet. Einführung in die C++-Programmierung, Seite 32

33 Virtueller Destruktor in der Basisklasse class _CKonto { Protected: // Attribute public: // Konstruktoren virtual ~_CKonto() { kontostand = 0; kontonummer = ""; pinnummer = ""; delete this; } Einführung in die C++-Programmierung, Seite 33

34 Aufbau eines Destruktors Ein Destruktor beginnt mit ~ (Tilde). Destruktoren nutzen wie Konstruktoren als Bezeichnung den Namen der Klasse. Destruktoren haben keinen Rückgabewert. Parameter werden an einen Destruktor nicht übergeben. Einführung in die C++-Programmierung, Seite 34

35 Aufruf von Destruktoren Destruktoren werden automatisch aufgerufen, wenn ein Objekt zerstört wird. Das heißt, die Objektvariable verliert ihre Gültigkeit. delete für die dynamische Verwaltung von Objekten aufgerufen wird. Einführung in die C++-Programmierung, Seite 35

36 manuell erstellen Angeforderter Speicher wird freigegeben. Verbindungen zu Datenbanken oder Dateien müssen aufgelöst werden. Virtuelle Destruktoren werden für eine Basisklasse benötigt. Einführung in die C++-Programmierung, Seite 36

37 Abstrakte Klassen haben mindestens eine pure virtual Methode. definieren Schnittstellen können keine Objekte erzeugen. liefern Informationen an die abgeleitete Klasse. Einführung in die C++-Programmierung, Seite 37

38 implementieren class _CKonto { protected: public: // Konstruktoren virtual ~_CKonto() { kontostand = 0; kontonummer = ""; pinnummer = ""; delete this; } // Methoden virtual float hebeab(float betrag) = 0; Einführung in die C++-Programmierung, Seite 38

39 Pure virtual Methode public: virtual float hebeab(float betrag) = 0; sind virtuelle Methoden, denen der Wert 0 zugewiesen wird. sind Deklarationen einer Methode. Eine allgemeine Implementierung für diese Methode ist nicht möglich. Alle Subklassen müssen diese Methode überladen. Einführung in die C++-Programmierung, Seite 39

40 Methoden aus einer Basisklasse überladen class _CGiroKonto : public _CKonto{ private: public: float hebeab(float betrag, _CKonto &konto) { if ( (kontostand - betrag ) >= 0){ kontostand = kontostand - betrag; konto.zahleein(betrag); } else if ( (kontostand - betrag ) >= dispo){ kontostand = kontostand - betrag; konto.zahleein(betrag); } return kontostand; } Einführung in die C++-Programmierung, Seite 40

41 Hinweise Die Methode aus der Basisklasse wird überdeckt. Sobald die überladene Methode aufgerufen wird, wird zuerst in der Subklasse nach einer Methode gesucht und anschließend in der Basisklasse. Einführung in die C++-Programmierung, Seite 41

42 Operatoren überladen..., um Rechenoperatoren oder Vergleichsoperatoren für benutzerdefinierte Datentypen zu implementieren...., um Klassen mit einer Funktionalität ähnlich wie Standard- Datentypen auszustatten. Einführung in die C++-Programmierung, Seite 42

43 Operatoren in C++ Umgangssprachliche Schreibweise: summe = a + b Der Operator definiert eine Verknüpfungsvorschrift. Formale Schreibweise: summe = operator+ (a, b) Die Operatoren sind als Funktionen implementiert. Der Funktion Addition werden zwei Parameter übergeben. Einführung in die C++-Programmierung, Seite 43

44 Nicht oder nur in Klassen überladbare Operatoren Nicht überladbare Operatoren: ::?:..* size of typei d Außerdem können die Cast-Operatoren, die Präprozessor- Kennzeichnung # oder ## sowie defined nicht überladen werden. Nur in Klassen überladbare Operatoren: = () [] -> Einführung in die C++-Programmierung, Seite 44

45 Regeln Es können keine neuen Operatoren definiert werden. Mindestens ein Operand muss eine Klasse oder eine Referenz auf eine Klasse sein. Die Funktionalität des Operators wird nicht verändert. Operanden, die aneinandergereiht werden können, müssen eine Referenz auf den linken Operator zurückgeben. Einführung in die C++-Programmierung, Seite 45

46 Überladung im Klassenbereich class KUNDE{ public: KUNDE& operator= (const KUNDE quelle) { kundename = quelle.kundename; kundevorname = quelle.kundevorname; kundestrasse = quelle.kundestrasse; kundeplz = quelle.kundeplz; kundeort = quelle.kundeort; }; } return *this; Einführung in die C++-Programmierung, Seite 46

47 Überladung des Zuweisungsoperators Eine Klasse hat dynamische Eigenschaften. Ein Kopierkonstruktor wird benötigt. Ein Destruktor wird benötigt. Einführung in die C++-Programmierung, Seite 47

48 Aufbau public: KUNDE& operator= (const KUNDE quelle) { return *this; } werden für Überladungen genutzt, die auf private- und protected-attribute zugreifen müssen. Der Funktionsname besteht aus dem Schlüsselwort operator und dem Operator-Zeichen. Es muss ein Objekt als erster Parameter genutzt werden. Einführung in die C++-Programmierung, Seite 48

49 Rückgabewert public: KUNDE& operator= (const KUNDE quelle) { return *this; } Die Funktion gibt eine Referenz auf das geänderte Objekt zurück. Einführung in die C++-Programmierung, Seite 49

50 this ist ein Zeiger auf das aktuelle Objekt. ist ein konstanter Zeiger. hat als Wert die Adresse des aktuellen Zeigers. Einführung in die C++-Programmierung, Seite 50

51 Überladung im Dateibereich class _CKonto { public: _CKonto operator+= (int betrag); }; _CKonto _CKonto::operator+= (int betrag) { kontostand += betrag; return *this; } Einführung in die C++-Programmierung, Seite 51

52 Aufbau _CKonto _CKonto::operator+= (int betrag) { return *this; } werden für Überladungen von arithmetischen oder relationalen Operatoren genutzt. Es kann ein beliebiges Element als erster Parameter genutzt werden. können nicht auf protected-attribute zugreifen. Einführung in die C++-Programmierung, Seite 52

53 Objekte als Parameter float hebeab(float betrag, _CKonto &konto){}; class _CKonto mykonto("123456", "abc12"); class _CGiroKonto mygiro("345612", "", 200); mygiro.hebeab(100, mykonto); Ein Objekt wird an eine Methode als Referenz übergeben. Es wird ein Alias für ein Objekt übergeben. Das übergebene Objekt kann mit Hilfe des Schlüsselwortes const vor Veränderungen geschützt werden. Einführung in die C++-Programmierung, Seite 53

54 dynamic_cast class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = dynamic_cast<_ckonto *>(&mygiro); ist nur mit Zeigern und Referenzen möglich.... benötigen Run-Time Type Information (RTTI). Einige Compiler haben diese deaktiviert! Einführung in die C++-Programmierung, Seite 54

55 nutzen Konvertierung von Basisklassen-Zeigern in Subklassen- Zeigern. Konvertierung eines Subklassen-Zeiger in einem Basisklassen- Zeigern. Diese Konvertierung kann zu einem Informationsverlust führen! Einführung in die C++-Programmierung, Seite 55

56 Wann wird die Konvertierung ausgeführt? Zur Laufzeit. Falls eine Konvertierung nicht möglich ist.... wird ein Null-Zeiger übergeben oder... bad_cast bei Referenzen. Einführung in die C++-Programmierung, Seite 56

57 static_cast class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = static_cast<_ckonto *>(&mygiro); Der Typ, in den konvertiert wird, muss während der Compilierung bekannt sein! Einführung in die C++-Programmierung, Seite 57

58 nutzen class _CKonto *basisclassptr; class _CKonto *subclassptr; basisclassptr = static_cast<_ckonto *>(&mygiro);... wird für die Konvertierung von Variablen von einem Datentyp in einem anderen genutzt.... wird für die Konvertierung von Basisklassen-Zeigern in Subklassen-Zeigern genutzt.... kann für die Umwandlung eines Subklassen-Zeiger in einem Basisklassen-Zeigern genutzt werden.... wandelt einen void-zeiger in jeden anderen Zeiger um. Einführung in die C++-Programmierung, Seite 58

59 reinterpret_cast und const_cast const_cast... fügt const hinzu oder entfernt dieses. reinterpret_cast... konvertiert jeden Zeiger in jeden anderen Zeiger Interpretation von Bitmustern im Kontext des Ziels.... konvertiert Ganzzahl nach Zeiger. Einführung in die C++-Programmierung, Seite 59

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung new/delete, virtual, Typumwandlungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 new/delete

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment

Mehr

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ziele Sie wissen, was Vererbung

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Polymorphismus 179. Function.h. #include

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1 Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16 1 Zauberer und Zwerge, Aufgabenteil 1 Stellen Sie sich vor, Sie sollen eine Charakterverwaltung für das neue Onlinerollenspiel

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Einführung in das Objektorientierte Programmieren mit C++

Einführung in das Objektorientierte Programmieren mit C++ BEREICH DATENTECHNIK I CP 700 00 TH 03 Einführung in das Objektorientierte Programmieren mit C++ Kapitel 7 7. Laufzeit-Polymorphie 7.1. Frühes und spätes Binden 7.2. Virtuelle Funktionen FG TECHNISCHE

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Kapitel 10: Subklassen / Vererbung

Kapitel 10: Subklassen / Vererbung 10. Subklassen/Vererbung 10-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 10: Subklassen / Vererbung Deklaration von Subklassen Vererbung von Daten und Funktionen Überschreiben/Redefinition,

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 12 Kapitel 18 Konstruktor / Destruktor einer Klasse Seite 1 von 12 Konstruktoren - Zur Initialisierung der Eigenschaften einer Klasse werden Konstruktoren verwendet. - Der Konstruktor wird bei der Definition

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie

Mehr

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.

Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21. Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,

Mehr

Lambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen

Lambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen Lambda-Funktionen Lambda-Funktionen sind Funktionen ohne Namen. definieren ihre Funktionalität an Ort und Stelle. können wie Daten kopiert werden. können ihren Aufrufkontext speichern. Lambda-Funktionen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einführung in C# Teil 3. Matthias Nübling Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008

Von Java/C nach C++ Fokus. Fabian Scheler, Peter Ulbrich, Niko Böhm. 21. Oktober 2008 Überblick 1 Primitive Datentypen Von Java/C nach Fabian Scheler, Peter Ulbrich, Niko Böhm Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme)

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Verwendung von Klassen in C++

Verwendung von Klassen in C++ Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung 2 Einordnung in den Softwareentwicklungsprozess Softwareentwicklung mit JAVA Planung Entwurf Programmierung Test/Evaluation/Pflege

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation

Mehr

Mikrorechentechnik II. Klassen in C++

Mikrorechentechnik II. Klassen in C++ Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr