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

Ähnliche Dokumente
Vererbung, Polymorphie

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

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

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

Einstieg in die Informatik mit Java

Objektorientierte Programmierung und Klassen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Klassen als Datenstrukturen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

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

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

C++ - Objektorientierte Programmierung Vererbung

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

3 Objektorientierte Konzepte in Java

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Einstieg in die Informatik mit Java

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Einführung in die Programmierung

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

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

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Erste Java-Programme (Java Wiederholung & Vererbung)

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

Java Vererbung. Inhalt

Praxis der Programmierung

Einstieg in die Informatik mit Java

Klassen mit Instanzmethoden

Repetitorium Informatik (Java)

Java für Bauingenieure

Vorkurs Informatik WiSe 15/16

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

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

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

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

Klassenvariablen, Klassenmethoden

Ereignisverwaltung und Layout-Typen

Schöner Programmieren

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene

Implementieren von Klassen

Java Einführung Vererbung und Polymorphie. Kapitel 13

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Vererbung und Polymorphie

II.4.1 Unterklassen und Vererbung - 1 -

Algorithmen und Datenstrukturen 07

II.4.1 Unterklassen und Vererbung - 1 -

Einstieg in die Informatik mit Java

Programmiertechnik Klassenvariablen & Instantiierung

6. Globalübung (zu Übungsblatt 8)

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schöner Programmieren

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

Vererbung. Florian Adamsky, B. Sc. (PhD cand.) Softwareentwicklung im WS 2014/15.

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Einführung in die Programmiersprache Java II

Einstieg in die Informatik mit Java

Exceptions und Vererbung

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

Übersicht. Bisherige Verwendung von Klassen Vererbung. Zeiger auf Objekte (abgeleiteter) Klassen Virtuelle Funktionen Konstruktoren/Destruktoren

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

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Abschnitt 12: Vererbung und Polymorphismus

Java - Vererbung. Personen. Leibniz Universität IT Services Anja Aue

3 Objektorientierte Konzepte in Java

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Einstieg in die Informatik mit Java

JAVA 05: Objektorientierte Konzepte

Programmiertechnik Objektorientierung

4. Vererbung Die Klasse Object. Die Klasse Object

Vorlesung 8. Sitzung Grundlegende Programmiertechniken

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Teil 2: Weitere Aspekte der Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Einstieg in die Informatik mit Java

Vererbung. Martin Wirsing. Ziele. Vererbung

II.4.1 Unterklassen und Vererbung - 1 -

Fakultät IV Elektrotechnik/Informatik

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Objektorientierte Programmierung Studiengang Medieninformatik

Programmieren I. Kapitel 8. Vererbung

Vererbung, Polymorphismus

Einstieg in die Informatik mit Java

II.4.1 Unterklassen und Vererbung - 1 -

III. Objektorientierte Programmierung. Aufruf einer Methode. Definition einer Methode. Bezug zur aufrufenden Instanz. Instanzen einer Klasse

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

Transkript:

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

Übersicht 1 Grundlagen 2 Eigenschaften 3 Konstruktoren und Vererbung 4 Ablauf der Instanziierung G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 2 / 11

Grundlagen Durch Vererbung werden von einer allgemeinen Klasse (Superklasse, Basisklasse) spezielle Klassen (Subklassen, abgeleitete Klassen) abgeleitet. Diese erben die Komponenten der Superklasse und besitzen ggfs. weitere Methoden und Variablen. Syntax class Subklasse extends Superklasse { // eigene Methoden und Variablen G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 3 / 11

Beispiel, Modellierung Beispiel Student matrikelnr... Kursteilnehmer bearbaufgaben... Person name vorname... Beamter dienstalter gehaltsstufe... G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 4 / 11

Beispiel, Instanzvariablen class Person { String name, vorname; // gemeinsame Eigenschaften class Student extends Person { int matrikelnr; // zusaetzliche Eigenschaften class Beamter extends Person { int dienstalter; // zusaetzliche Eigenschaften String gehaltsstufe; class Kursteilnehmer extends Student { int bearbaufgaben; // zusaetzliche Eigenschaften G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 5 / 11

Beispiel, Basisklasse Person Dazu kommen natürlich die passenden Methoden und Konstruktoren, z.b. für die Basisklasse: class Person { String name, vorname; // gemeinsame Eigenschaften Person (String n, String v) { // Konstruktor name = n; vorname = v; void nameausgeben () { // Methode System.out.println (vorname + " " + name); G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 6 / 11

Beispiel, abgeleitete Klasse Student... und für die abgeleitete Klasse Student: class Student extends Person { int matrikelnr; // zusaetzliche Eigenschaften Person (String n, String v, int m) { // Konstruktor name = n; vorname = v; matrikelnr = m; void allesausgeben () { // Methode nameausgeben(); System.out.println ("Matrikelnr: " + matrikelnr); G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 7 / 11

Eigenschaften In Java ist keine Mehrfachvererbung möglich, d.h. die Subklasse kann nur von einer Superklasse abgeleitet werden. Zum Beispiel ist class X extends Y,Z {... verboten. Allerdings ist bei Schnittstellen Mehrfachvererbung erlaubt, d.h. interface X extends Y,Z {... ist erlaubt. Es darf über mehrere Stufen hinweg vererbt werden. Man spricht dann von indirekten Sub und Superklassen, andernfalls von direkten. Alle Klassen ohne Angabe von extends sind abgeleitet von der Superklasse Object. Konstruktoren, static Initialisierer und private Komponenten werden nicht vererbt. G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 8 / 11

Konstruktoren und Vererbung Konstruktoren werden nicht vererbt, allerdings kann der Konstruktor der direkten Superklasse aufgerufen werden. Syntax super(parameterliste); Der Aufruf muss als erste Anweisung im Konstruktor der Subklasse stehen. Ohne expliziten Aufruf wird am Anfang der Standardkonstruktor der Superklasse aufgerufen, d.h. der Konstruktor der Subklasse wird ergänzt um super(); Das bedeutet, dass jeder Konstruktor implizit mit dem Aufruf von super() beginnt. Bei der Superklasse wird der Konstruktor der Klasse Object aufgerufen. G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 9 / 11

Beispiel class Basis { int x; Basis() { x = 5; // Standardkonstruktor class Abgeleitet extends Basis { int y; Abgeleitet() { // Standardkonstruktor super(); // Standardkonstruktor der y = 6; // Superklasse public static void main(string s){ Abgeleitet a = new Abgeleitet(); System.out.println (a.x); // ergibt 5 System.out.println (a.y); // ergibt 6 Achtung Nicht erlaubt ist der Aufruf der Konstruktors der Superklasse innerhalb von bedingten Anweisungen, da dann der Aufruf nicht an erster Stelle erfolgt! G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 10 / 11

Ablauf der Instanziierung Ablauf der Instanziierung class Vater { int x = 1; class Sohn extends Vater { int y = 2;... Sohn s = new Sohn(); (1) Die Referenz wird angelegt und mit null initialisiert. (2) Es wird Speicher für zwei Werte vom Typ int auf dem Heap (Freispeicher) beschafft. (3) Die Komponenten x und y werden mit 0 initialisiert. (4) Den Komponenten x und y werden die Werte 1 bzw. 2 zugewiesen, und es werden ggfs. weitere Initialisiererblöcke ausgeführt. (5) Der Konstruktor (hier: Standardkonstruktor) der Klasse Sohn wird aufgerufen. Dieser ruft als erstes den Standardkonstruktor der Basisklasse Vater und der wiederum den Standardkonstruktor der Klasse Object auf. (6) Die Variable s erhält eine Referenz auf das neu erzeugte Objekt. G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 11 / 11