Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
|
|
- Norbert Rosenberg
- vor 6 Jahren
- Abrufe
Transkript
1 Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur eine Klasse CLOWN, die es uns erlaubt einen Clownfisch zu zeichnen und zu bewegen, sondern eine weitere Klasse ZITRONE, mit der wir einen gelben Fisch zeichnen und bewegen lassen können.
2 Wir stellen fest: Die Fische unterscheiden sich nur in ihrer grafischen Darstellung. Attribute wie x-koordinate, y-koordinate, eine Geschwindigkeit und ein Bild brauchen alle Fische. Wenn wir außer Fischen auch noch andere schwimmende bzw sich bewegende Objekte darstellen wollen, dann stellen wir fest, dass wir bei der Festlegung dieser Objekte durch Klassen ebenfalls viele gleiche Methoden und Attribute benötigen. Manche Attribute brauchen allerdings unterschiedliche Werte oder an dieses Objekte angepasste Methoden. Wir machen also eigentlich immer wieder dasselbe oder etwas sehr ähnliches nur in einer anderen Klasse.
3 Außerdem stellen wir fest: Wenn wir viele Objekte bewegen wollen, dann brauchen wir nicht nur ein Feld, sondern mehrere Felder. Auch diese Felder werden sich nur in Kleinigkeiten unterscheiden. Das muss auch einfacher umzusetzen sein!... ohne dass wir soviel kopieren müssen.
4 Dazu gibt es bei objektorientierten Programmiersprachen wie Java oder Processing das Konzept der Vererbung (auch Ober-/Unterklassenprinzip oder Generalisierung/Spezialisierung genannt). Die Idee ist: Wir programmieren eine Klasse, die die Attribute und Methoden enthält, die die Klassen gemeinsam haben. Das ist die sogenannte Oberklasse (Generalisierung). Die Klassen, die sich um die einzelnen Fischarten oder andere bewegte Objekte kümmern, sind die Unterklassen (Spezialisierung). Dort werden nur die Unterschiede programmiert.
5 Wir wollen vorerst zwei verschiedene Arten von Fischen (Clownfische und zitronengelbe Fische) und Luftblasen in unserem Aquarium darstellen. Die Fische bewegen sich gleich, zum Zeichnen muss der Konstruktor nur ein anderes Bild verwenden. Die Luftblasen bewegen sich von unten nach oben (dafür muss die y-koordinate geändert werden) und werden mit Hilfe einer Ellipse gezeichnet. Da aufsteigende Luftblasen kleiner werden sollen, brauchen die Luftblasen ein Attribut radius, dessen Wert beim Bewegen geändert werden soll. Wir stellen fest: Jede der Klassen braucht einen individuellen Konstruktor, der die passenden Werte setzt. In der Oberklasse fassen wir die Gemeinsamkeiten zusammen.
6 Die Oberklasse sollte einen sinnvollen Namen bekommen z.b. SCHWIMMER. Im Klassendiagramm sieht das wie folgt aus: SCHWIMMER int x int y PImage bild int v SCHWIMMER(int xneu, int yneu) void Zeichne() void Bewege() Oberklasse Diese besondere Art an Pfeilen zeigt, welche Klasse die Oberklasse und welche die Unterklasse ist. Unterklasse CLOWN CLOWN(int xneu, int yneu) ZITRONE BLASE int radius BLASE(int xneu, int yneu) void Bewege() void Zeichne() Die Unterklasse BLASE braucht ein Attribut radius, um einen Kreis zu zeichnen. Die Unterklasse CLOWN erbt alle Attribute und Methoden der Oberklasse ohne dass diese im Klassendiagramm oder im Programmtext stehen. ZITRONE(int xneu, int yneu) Zum Zeichnen und zum Bewegen werden andere Methoden als in der Oberklasse benötigt. Diese Methoden werden überschrieben.
7 Die Unterklassen erben alle Attribute und Methoden der Oberklasse. Eine Unterklasse kann zusätzlich zu den Attributen der Oberklasse weitere Attribute definieren. Für die Unterklassen CLOWN und ZITRONE heißt das, dass ein Objekt dieser Klassen genau vier Attribute hat (auch wenn diese im Programmtext der Unterklasse nicht vorkommen!). Die Unterklasse BLASE hat dagegen die vier Attribute der Oberklasse und das Attribut radius, also insgesamt fünf Attribute. Wenn eine Methode mit dem gleichen Namen wie in der Oberklasse in der Unterklasse vorkommt, dann bedeutet das, dass diese Methode überschrieben (override) wurde. Damit wird z.b. für ein Objekt der Klasse BLASE beim Aufruf von Bewege nicht die Bewege-Methode der Oberklasse verwendet, sondern die Methode gleichen Namens, die in der Unterklasse steht.
8 Wie wird das im Programm umgesetzt? Woher weiss die Oberklasse, dass sie eine Oberklasse ist und woher weiss die Unterklasse, dass sie eine Unterklasse ist? Die Oberklasse braucht das nicht zu wissen, hier ändert sich nichts. Bei der Angabe der Unterklasse muss allerdings ein passendes Schlüsselwort (extends) angeben, woher die geerbten Attribute und Methoden stammen.
9 in Java/Processing: Unterklasse CLOWN class CLOWN extends SCHWIMMER // das Schluesselwort extends // sorgt dafuer, dass SCHWIMMER // als Oberklasse genommen wird // Hier steht nichts, da diese Unterklasse keine zusaetzlichen Attribute hat CLOWN(int xneu, int yneu) super(xneu, yneu); bild = image( fisch.png ); // Konstruktor der Unterklasse // als erste Anweisung muss der Konstruktor // der Oberklasse aufgerufen werden - // dieser sorgt dafuer, dass alle Attribute auf // einen Startwert gesetzt werden. // ein Clownfisch braucht das passende Bild // Das war's schon, mehr muss in dieser Unterklasse nicht stehen, da // die Methoden aus der Oberklasse benutzt werden können.
10 class BLASE extends SCHWIMMER // SCHWIMMER ist die Oberklasse int radius; // Diese Unterklasse hat radius als weiteres Attribut. BLASE(int xneu, int yneu) // Konstruktor der Unterklasse super(xneu, yneu); // Aufruf des Konstruktors der Oberklasse radius = (int) random(20)+5; // zufaelliger Radius mit Mindestgroesse 5 void Bewege() y = y v; // Diese Attribute wurden von der Oberklasse geerbt // und koennen verwendet werden. radius = radius -1; // Die Blasen werden kleiner, indem der Radius // kleiner wird. void Zeichne() if (radius > 2) // sonst sind die Blasen zu klein (negativer Radius) nofill(); // durchsichtige Luftblasen ellipse(x, y, radius, radius);
11 Um nun Objekte der Unterklassen in das gleiche Feld einzutragen, muss in der Klasse SCHWARM nur noch der Datentyp des Feldes geändert werden. Jetzt wird fische als Feld von Objekten der Klasse SCHWIMMER deklariert (ein anderer Name wäre nun auch passender): SCHWIMMER [ ] fische; // statt CLOWN... Im Konstruktor wird das Feld mit Hilfe der Anweisung fische = new SCHWIMMER[n]; erzeugt. Zum Erzeugen und Eintragen von n Objekten aus den verschiedenen Unterklassen verwenden wir wieder die Zufallsfunktion random und eine passende Mehrfachauswahl.
12 Zum Erzeugen und Eintragen von n Objekten aus den verschiedenen Unterklassen verwenden wir wieder die Zufallsfunktion random und eine passende Mehrfachauswahl. Damit kann der Konstruktor nun wie folgt aussehen: SCHWARM(int n) fische = new SCHWIMMER[n]; for (int i= 0; i < n; i++) switch ((int)random(3)) // hier wird zufaellig eine Zahl aus 0;1;2 erzeugt case 0: fische[i] = new CLOWN((int) random(width), (int) random (height)); break; case 1: fische[i] = new ZITRONE((int) random(width), (int) random (height)); break; case 2: fische[i] = new BLASE((int) random(width), (int) random (height)); break;
13 Die Möglichkeit in ein Feld über einer Oberklasse Objekte von beliebigen Unterklassen einzutragen gehört zum Konzept des Polymorphismus. Polymorphismus Ein Attribut oder Parameter vom Datentyp einer Oberklasse kann auch eine Referenz auf ein Objekt einer Unterklasse aufnehmen. Dies nennt man Polymorphismus. Beim Aufruf einer Methode eines Objekts wird die passende Methode genommen, d.h. ein Objekt der Klasse BLASE wird die in dieser Klasse definierte Methode (z.b. Bewege) ausführen, während ein Objekt der Klasse CLOWN die Methode Bewege aus der Oberklasse ausführen wird, da in der Klasse CLOWN keine eigene Methode Bewege definiert wurde. Auch das gehört zum Polymorphismus-Konzept.
14 Zusammenfassung Durch Vererbung kann man aufbauend auf schon existierenden Klassen neue schaffen. Dabei stehen die Klassen in einer Ober-/Unterklassenbeziehung (typischerweise ist das eine ist ein -Beziehung). Unterklassen erben die Attribute und Methoden der Oberklasse, können diese allerdings auch durch Angabe eigener Methoden überschreiben. Beim Vorgang des Erbens spricht man auch von einer Spezialisierung (Umkehrung: Generalisierung). Geerbte Attribute und Methoden werden in der Unterklasse im Klassendiagramm nicht angegeben. Unter Polymorphismus versteht man die Fähigkeit eines Attributs (einer Variablen) abhängig von seiner Verwendung unterschiedliche Datentypen anzunehmen (Beispiel: ein Feld von Objekten der Klasse SCHWIMMER kann auch Objekte jeder Unterklasse aufnehmen). In Java: In der Unterklasse wird durch extends Name_der_Oberklasse die Beziehung festgelegt. Die erste Anweisung im Konstruktor der Unterklasse muss ein Aufruf des Konstruktors der Oberklasse durch die Anweisung super(..) sein. Die Anzahl und die Typen der Parameter in der runden Klammer müssen mit der Anzahl und den Typen der Parameter des aufgerufenen Konstruktors übereinstimmen.
15 Abstrakte Klassen Wenn es Methoden in einer Oberklasse gibt, die jede Unterklasse implementieren sollte, dann werden solche Methoden als abstrakte Methoden markiert (durch das Schlüsselwort abstract). In der Oberklasse wird für eine abstrakte Methode nur der Methodenkopf angegeben - statt eines Methodenrumpfes steht nur ein Strichpunkt. Beispiel: abstract Bewege(); Jede Unterklasse muss nun diese Methode implementieren. Eine abstrakte Methode definiert damit eine Schnittstelle. Oberklassen, die mindestens eine abstrakte Methoden enthalten, sind als abstrakt zu kennzeichnen. Von einer abstrakten Klasse kann kein Objekt erzeugt werden. Beispiel: abstract class SCHWIMMER...
16 Arbeitsauftrag: Kopieren Sie das Projekt Giessen oder Ungeziefer auf Ihren Schreibtisch und verbesseren Sie es, indem Sie z.b. bei dem Projekt Ungeziefer die Oberklasse als abstrakte Klasse markieren (finden Sie heraus, welche Methode als abstrakt definiert werden sollte), weitere Unterklassen schreiben, einen Zähler einführen, der mitzählt, wie viele Insekten vernichtet wurden,... Bei dem Projekt Giessen können Sie das Generalisierungs-/Spezialisierungkonzept einführen, indem Sie weitere Pflanzen definieren oder verschiedene Arten von Ungeziefer durch den Garten laufen lassen. Auch hier sollten Sie sich mit abstrakten Klassen und Methoden beschäftigen.
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,
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrProgrammierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.
Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto
MehrOOP 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
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrKapitel 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
MehrJava 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
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrVorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrEine 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,
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrKapitel 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
MehrKapitel 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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus
MehrKapitel 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
MehrProgrammieren I. Kapitel 8. Vererbung
Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte
MehrVerhindert, 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:
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrProgrammieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik
Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:
Mehr1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
Mehr1 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,
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrKapitel 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
MehrVererbung. 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,
Mehr7. 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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrVererbung & 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
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
MehrEinführung in die Programmierung für NF. Vererbung
Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden
MehrEinstieg 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
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
Mehr3. 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
MehrVererbung. Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
Mehr3 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
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrVIII: 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:
MehrDer Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.
Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.
MehrObjektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
MehrÜberblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrVererbung und Traits
Vererbung und Kiermaier Ulrich FWP-Fach: Scala: Java-Nachfolger oder akademisches Experiment? 11.5.2010 Übersicht Aufbau nach dem Buch Programming in Scala von Martin Odersky, Lex Spoon, Bill Venners Vererbung
Mehr3 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
MehrVererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrProgrammieren I. Überblick Objektorientierung Heusch 12 Ratz 7. Institut für Angewandte Informatik
Programmieren I Überblick Objektorientierung Heusch 12 Ratz 7 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Objektorientierte Softwarenentwicklung Was ist das grundlegende Konzept
MehrFAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 8 F. Forster, T.
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 15: Wiederholung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 3. Februar 2016
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrProgrammieren 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
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr13. Tutorium zu Programmieren
13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrInnere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
MehrObjektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs
Objektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs 31. Mai 2016 Grundbegriffe (I) Objektorientierung: Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel kooperierer
Mehr10. Programmierungs-Phase: Objektorientierung Software Engineering
10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext
MehrStatische Methoden, Vererbung, Benutzereingabe
Statische Methoden, Vererbung, Benutzereingabe Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now
MehrJava - Vererbung. Personen. Leibniz Universität IT Services Anja Aue
Java - Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Eltern-Kind-Beziehung. Ableitung
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrKompetent objektorientiert programmieren
Kompetent objektorientiert programmieren Aegidius Plüss, Bern, www.aplu.ch Eine objektorientierte Programmiersprache steht auf drei fundamentalen Säulen: Klassenkapselung (encapsulation) Vererbung (inheritance)
MehrProgrammieren 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
MehrWiederholung. Jedes Objekt hat seinen eigenen Zustand/seine eigenen Variablen (gilt auch für mehrere Objekte, die zur gleichen Klasse gehören).
Wiederholung Klassen, Objekte, Nachrichten, Methoden: Jedes Objekt ist Exemplar (Instanz) einer Klasse. Diese Klasse definiert das Verhalten des Objektes. Gewöhnlich haben Klassen mehrere Exemplare. Jedes
MehrProgrammieren 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
MehrGrundlegende Programmierkonzepte: Anweisungen und Methoden
Grundlegende Programmierkonzepte: Anweisungen und Methoden Einleitung: Eigene Befehle definieren Kara steht vor einem Baum, der alleine in der Welt steht. Hinter dem Baum hat es ein Kleeblatt, das Kara
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrInformatik II Übung, Woche 17
Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrProgrammieren Übung! Meine ersten Schritte als ProgrammiererIn! Prolog 2014 Stefan Podlipnig, TU Wien
Programmieren Übung! Meine ersten Schritte als ProgrammiererIn! Stefan Podlipnig, TU Wien Beispiel 1 Programmierung - Übung! 2 Geben Sie folgende Anweisungen ein size(300, 200); rect(100, 50, 100, 100);
MehrObjektorientierte 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
MehrWeitere Spielvarianten für mehr Action
Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 1 Weitere Spielvarianten für mehr Action In diesem Kapitel lernst du nichts wirklich Neues mehr dazu. Es zeigt dir
Mehr5.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
MehrJava für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrProgrammierung 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
MehrPIWIN 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
MehrAufgaben. Objektorientierte Programmierung
Aufgaben Objektorientierte Programmierung 1. Baue in die Klasse Wombat eine Methode turnright() ein, damit sich der Wombat auch im Uhrzeigersinn drehen kann 2. Notiere alle Befehle (Stift und Blatt Papier
Mehr4 Vererbung, Polymorphie
4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrProgrammiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
Mehr