INE2 OOP mit Java 2 Vererbung, Polymorphismus. Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus
|
|
- Gabriel Böhm
- vor 5 Jahren
- Abrufe
Transkript
1 INE2 OOP mit Java 2 Vererbung, Polymorphismus Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus
2 Einführung Beispiel Automobilbau: Eine Firma produziert eine Limousine Ein Kunde möchte einen solchen PW, aber als Kombi Was macht die (gute) EntwicklungsingenieurIn? Mögliche Alternativen: Sie/er baut ein neues Auto von Grund auf Sie/er übernimmt möglichst viel von der bestehenden Limousine Am besten ist sie/er dran, wenn sie bereits das erste Auto so modular (mit Hilfe von Komponenten) entwickelt hat, dass die Umwandlung in einen Kombi einfach möglich ist 2 von 50
3 Lösung Beispiel Automobilbau: Autokonzern entwickelt eine Grundplattform Auf dieser Plattform können verschiedene Modelle verschiedener Marken aufgebaut werden Individualisierung geschieht über unterschiedliche Ausrüstung (=Erweiterung) Motorisierung (=Anpassung), etc. Vorteile: Hohe Entwicklungskosten können besser amortisiert werden Neue Modelle können schneller zur Marktreife gebracht werden 3 von 50
4 Ziele bei der Softwareentwicklung Ziele bei der Softwareentwicklung: A) Software möglichst aus bestehenden Bausteinen (Klassen) zusammenbauen B) Bei Bedarf diese Bausteine an die spezifischen Anforderungen anpassen selten passen die Bausteine zu 100% Anpassen von Software erweitern und modifizieren Lösung 1: Anpassen in der Quelle, oft möglich aber: Quelle kann nicht (mehr) vorhanden sein Änderungen sind schwierig, weil Quellen sehr umfangreich und Zusammenhänge u.u. nicht klar Änderungen (z.b. Bug Fix) müssen später u.u. an verschiedenen Quellen nachgeführt werden Änderungen können Einfluss auf bestehende Systeme haben 4 von 50
5 Wiederverwendung von Software (Teilen) spart Zeit (z.b. die Klasse Math und die Collections - später) Meist existiert schon Software/Bibliotheken, die einen Teil der Funktionalität aufweist Ändern einer bestehenden Software in der Quelle ist aufwendig: Quellen muss zuerst verstanden werden Neue Fehler, Inkompatibilitäten mit anderen Komponenten können entstehen Umfangreiche Tests auch der bestehenden Teile werden daher nötig Lösungsansatz der OOP: Die verwendeten Teile der Software werden belassen wie sie sind Nötige Änderungen und Ergänzungen erreicht man durch Vererbung und Erweiterung 5 von 50
6 Objektorientierte Programmierung Die Objektorientiert Programmierung ermöglicht die Anpassung von Klassen, ohne dass man die Quellen benötigt Open-Closed Prinzip: Software-Einheiten sollten offen für Erweiterungen, aber geschlossen für Modifikationen sein Bestehende Bausteine dürfen nicht verändert werden Die Modifikation der Funktionalität sollte immer eine Erweiterung sein Bsp: z.b. eine Ampel unterstützt 3 statt 2 Phasen -> bestehende Steuerungen müssen nicht angepasst werden. Der Mechanismus für die Erweiterung und Modifikation von Klassen heisst Vererbung 6 von 50
7 Vererbung zur Erweiterung 7 von 50
8 Vererbung in Java Es seien zwei Klassen gegeben: Klasse Kugel Klasse Ballon // gleich wie Kugel aber Position kann nachträglich verändert werden public class Kugel { private int x, y; public draw(graphics g) { g.filloval(..) public class Ballon { private int x, y; public draw(graphics g) { g.filloval(..) Code Code Verdoppelung Verdoppelung public Kugel (int x, int y) {... public Balloon(int x, int y) {... public void setpos(int newx, int newy){ x = newx; y = newy; 8 von 50
9 Vererbung zur Erweiterung Die Klasse Ballon ist gleich wie die Klasse Kugel, mit dem Unterschied, dass die Position nachträglich verändert werden kann. Die Klasse Ballon erweitert die Klasse Kugel(Klasse Ballon ist von der Klasse Kugel abgeleitet) Terminologie: Die Klasse Kugel heisst entsprechend Oberklasse (superclass) von der Klasse Ballon Die Klasse Ballon heisst Unterklasse (subclass) von der Klasse Kugel Kugel superclass, superclass, Oberklasse Oberklasse Basisklasse Basisklasse Symbol Symbol für für Vererbung Vererbung Ballon subclass subclass Unterklasse Unterklasse abgeleitete Klasse abgeleitete Klasse 9 von 50
10 Vererbung in Java: extends Die Klasse Ballon erbt von Kugel Klasse Kugel (ev.vorbereitet für Vererbung) Klasse Ballon // gleich wie Kugel aber Position kann nachträglich verändert werden protected: protected: sind sind in in abgeleiteten abgeleiteten Klassen Klassen sichtbar sichtbar (aber (aber nicht nicht in in andern andern Klassen) Klassen) Ballon Ballon erbt erbt von von Kugel; Kugel; sämtliche sämtliche public public und und protected protected Methoden Methoden und und Attribute Attribute können können innerhalb innerhalb der der Klasse Klasse angesprochen angesprochen werden werden public class Kugel { protected int x, y; public draw(graphics g) { g.filloval(..) public Kugel(int x, int y) { this.x = x; this.y = y; public class Ballon extends Kugel { public void setpos(int newx, int newy){ x = newx; y = newy; public Ballon (int x, int y) { 10 von 50
11 Vererbung in Java Klasse Ballon erbt Attribute (Instanzvariablen und Klassenvariablen) und Operationen (Methoden) von der Klasse Kugel Attribute und Operationen der Klasse Kugel sind auch in der Klasse Ballon (wie die eigenen) zugreifbar. In Java kann nur von einer Klasse geerbt werden (Einfachvererbung ) im Gegensatz zu z.b. C++ (siehe Anhang) Kugel Kugel Ballon Methoden Methoden Ballon 11 von 50
12 Vererbung in Java Die Unterklasse erhält keine Kopien der Variablen und Methoden, sondern den Zugriff auf die Attribute und Methoden der Oberklasse Die Unterklasse kann sodann beliebig zusätzliche Methoden und Instanzvariablen deklarieren (wie bei jeder Klasse) Allgemeine Deklaration einer Unterklasse: class Unterklassenname extends Oberklassenname { Instanzvariablendeklarationen Konstruktorendeklarationen Methodendeklarationen 12 von 50
13 Vererbung zur Anpassung 14 von 50
14 Vererbung zur Anpassung Es seien zwei Klassen gegeben: Klasse Kugel Klasse Billard // gleich wie Kugel aber es wird noch eine Zahl angezeigt Konkret: die Methode draw soll angepasst werden Kugel Billardkugel Billardkugel Methoden Methoden Kugel 15 von 50
15 Überschreiben von Methoden Falls eine Methode in der Unterklasse genau den gleichen Namen und die gleichen Parameter (Signatur) aufweist, wie eine Methode in der Oberklasse, so wird die Methode der Oberklasse überschrieben. Wie die Funktionalität damit angepasst werden kann, wird im Abschnitt Polymorphismus genauer beschrieben Vorsicht: Falls die Deklaration nicht genau mit der in der Oberklasse übereinstimmt, wird die Methode überladen statt überschrieben! D.h. beide Methoden würden dann in der Unterklasse nebeneinander existieren, die geerbte und die neu geschriebene Überladen (overloading)!= Überschreiben (overriding) (siehe Anhang) 16 von 50
16 Überschreiben von Methoden Es seien zwei Klassen gegeben: Klasse Kugel Klasse Billardkugel // gleich wie Kugel aber sie wird anders gezeichnet public class Kugel { protected int optional optional aber empfohlen aber empfohlen public void draw(graphics g) { g.filloval(..) public Kugel(int x, int y) { public class Billardkugel extends Kugel public void draw(graphics g) { g.filloval(..); g.drawstring (..); public Billardkugel (int x, int y) { 17 von 50
17 Überschreiben von Methoden Eine Methode einer Oberklasse ist überschrieben, wenn in einer ihrer Unterklassen eine Methode mit demselben Methodenkopf (Signatur) steht Falls die ursprüngliche Methode in der Oberklasse von der Unterklasse aus aufgerufen werden soll, so muss der Objektname super verwendet werden: super.methodenname(...); super bezeichnet das aktuelle Objekt, das aber als Objekt der Oberklasse interpretiert wird entsprechend wird die Methode der Oberklasse aufgerufen Beispiel: innerhalb der Klasse Billardkugel kann die draw Methode der Oberklasse aufgerufen public void draw (g) { super.draw(g); g.drawstring(..); 18 von 50
18 Überschreiben (shadowing) von Attributen Falls in der Unterklasse eine (public oder protected) Instanzvariable mit gleichem Namen wie in der Oberklasse deklariert wird, ist die Instanzvariable der Oberklasse in der Unterklasse nicht mehr zugreifbar. Dies wird auch als "Überschatten" (shadowing) bezeichnet public class Kugel { protected int x, y;... public class Billardkugel extends Kugel { private int x, y;... Führt oft zu Problemen Das Überschreiben von Attributen sollte vermieden werden! 19 von 50
19 Zugriffsmodifikator: protected protected-methoden/instanzvariablen sind sichtbar in allen Unterklassen der Klasse, in der die Variable/Methode deklariert ist Zur Erinnerung: lokale Variablen (innerhalb Methoden deklariert) sind nur innerhalb derselben Methode sichtbar Billardkugel Kugel 20 von 50
20 Zugriffsmodifikatoren Übersicht Zugriffsmodifikator Sichtbarkeit gleiche Klasse Unterklasse andere Klasse private ja nein nein protected ja ja nein public ja ja ja Grundsatz: Variablen immer mit den minimal möglichen/sinnvollen Sichtbarkeit deklarieren. Laufvariablen: for (int i = 0; lokale Variablen: void foo() {int i;... private Instanzvariablen: public class T {private int i; protected Instanzvariablen: public class T {protected int i; public Instanzvariablen: public class T {public int i; von 50
21 Klassen Vererbungshierarchie Vererbungs-Hierarchie Eine Klasse ohne explizite Oberklasse erbt in Java implizit von der Klasse Object Jede Unterklasse kann seinerseits von weiteren Unterklassen erweitert werden Dadurch entsteht eine baumartige Hierarchie von Unterklassen (Baum steht aber auf dem Kopf) Object equals() Kugel int x,y void draw() Diese Vererbungs-Hierarchie kann in einem sog. Klassendiagramm dargestellt werden Beispiel UML-Klassendiagramm: Vererbungs-Hierarchie der Klasse Kugel Ballon void setpos() Billardkugel void draw() Zeppelin void move() 22 von 50
22 Die Oberklasse Object Jede Klasse in Java erbt automatisch und implizit von der Klasse java.lang.object Object Zwei Methoden somit in allen Klassen vorhanden (später mehr) Kugel String tostring() // Returns a string representation of the object. boolean equals(object obj) // Indicates whether some other object is "equal to" this one. 23 von 50
23 Oberklassen Methodenaufruf 24 von 50
24 Aufruf von Methoden der Oberklasse Innerhalb einer Klasse kann jede beliebige Methode einer Oberklasse (wie eine eigene) aufgerufen werden. sofern sie public oder protected ist Beispiel: innerhalb der Klasse Zeppelin kann ich setpos() der Oberklasse (Ballon) aufrufen public void move (int dx) { setpos(x+dx, y); 25 von 50
25 Konstruktoren 26 von 50
26 Konstruktoren Repetition: Beim Erzeugen eines Objekts wird der entsprechende Konstruktor ausgeführt Instanzvariablen des erzeugten Objekts werden initialisiert Kugel kugel = new Kugel( ); Jede Klasse hat einen oder mehrere Konstruktoren (heissen gleich wie Klasse) mit unterschiedlichen Parameterlisten Neu: Beim Erzeugen eines Objekts der Unterklasse, muss der entsprechende Konstruktor der Oberklasse ausgeführt werden, um dessen Instanzvariablen zu initialisieren public class Kugel { protected int x, y; public Kugel(int x, int y) { this.x = x; this.y = y;? public class Billardkugel extends Kugel { private int zahl; public Billardkugel (int x, int y, int zahl) { von 50
27 Konstruktor ohne Parameter Automatismus: Instanz- und Klassenvariablen werden automatisch d.h. von der Java Laufzeitumgebung zu 0 (null, false) initialisiert. Automatismus: Falls ein Konstruktor ohne Parameter (=Standardkonstruktor) in der Oberklasse vorhanden ist, dann wird dieser automatisch vor der Ausführung des Konstruktors der Unterklasse aufgerufen automatisch, automatisch, implizit implizit public class Kugel { protected int x, y; public Kugel() { this.x = 100; this.y = 100; public class Billardkugel extends Kugel { private int zahl; public Billardkugel (int x, int y, int zahl) { this.zahl = zahl; Initialisierung Initialisierung der der Unterklasse Unterklasse 28 von 50
28 Konstruktoren: super Falls ein anderer als der Standardkonstruktor in der Oberklasse ausgeführt werden soll, so muss der Programmierer selbst diesen Oberklassen Konstruktur aufrufen. public class Kugel { protected int x, y; public class Billardkugel extends Kugel { private int zahl; public Kugel(int x, int y;) { this.x = x; this.y = y; explizit explizit public Billardkugel (int x, int y, int zahl) { super(x,y); this.zahl = zahl; Und zwar als erste Anweisung im Konstruktor der Unterklasse 29 von 50
29 Konstruktoren Automatismus: Falls eine Klasse keinen Konstruktor aufweist, wird von Java automatisch ein Standard-Konstruktor eingefügt. Wird aber wieder entfernt, sobald ein eigener Konstruktor vorhanden ist Dieser macht nichts anderes, als den Oberklassen Konstruktor aufzurufen und sieht dementsprechend folgendermassen aus: Klassenname(){ super(); Mit diesen Mechanismen garantiert Java, dass beim Erzeugen eines Objekts einer Klasse die Konstruktoren aller Oberklassen der Klasse ausgeführt werden, bevor der Konstruktor der Klasse selbst ausgeführt wird. Der erste Konstruktor, der immer ausgeführt wird ist also der Konstruktor der Oberklasse Object. Danach werden die Konstruktoren der direkten Unterklassen der Reihe nach ausgeführt bis zur aktuellen Klasse. 30 von 50
30 Konstruktoren Aufruf- Reihenfolge Ausführungs- Reihenfolge Object Beispiel: equals() Wird im Klassendiagramm ein Objekt der Klasse Zeppelin Kugel erzeugt, so werden der Reihe nach int x,y void draw() folgende Konstruktoren ausgeführt: 1.Object(); 2.Kugel(); 3.Ballon(); Ballon Billardkugel 4.Zeppelin(); void setpos() Zeppelin void move() void draw() Die Konstruktoren werden von unten nach oben aufgerufen (explizit oder impliziert). Die Ausführungsreihenfolge ist dann aber von oben nach unten! 31 von 50
31 Kontrollfrage Was passiert, wenn die Unterklasse keinen Konstruktor hat und die Oberklasse hat einen, aber keinen ohne Aufrufparametern??!! 32 von 50
32 final bei Attributen und Methoden Manchmal möchte man vermeiden, dass Instanzvariablen oder Methoden einer Klasse überschrieben werden können. Vorgehen: Variable oder Methode als final deklarieren final-methode oder -Variable kann nicht mehr überschrieben werden. public final static int DEFAULTX = 100; public final void setpos(int newx, int newy){ x = newx; y = newy; static final Variablen: entsprechen Konstanten in anderen Sprachen Klassenvariablen, die nicht überschrieben werden können. Java-Konvention: Namen von Konstanten in GROSSBUCHSTABEN schreiben Beispiel: Die Konstante Pi = ist in der Klasse Math definiert und kann von überall her mit dem Namen Math.PI verwendet werden 33 von 50
33 final bei Klassen Es können auch ganze Klassen als final deklariert werden: Klasse kann nicht mehr erweitert (subclassed) werden Alle Methoden der Klasse sind dann automatisch auch final public final class Billardkugel extends Kugel { private int zahl;.. Erschwert/verhindert Erweiterbarkeit: sparsam einsetzen Beispiel: Die Klasse System ist als final deklariert. 34 von 50
34 Erweitern von Java-Bibliotheksklassen Auch (alle nicht final) Klassen in Java-Bibliotheken können durch selbst programmierte Klassen erweitert werden (ohne den Java-Code kennen zu müssen!) Beispiel: Klasse JForm Um ein Form zu schreiben, haben wir jeweils eine Unterklasse der Klasse Form geschrieben: public MyProgram extends JForm {... MyProgram erbt alle Methoden von der Klasse Form und deren Oberklassen Die Methoden paint(graphics g) der Klasse Form müssen in MyProgram überschrieben werden Wird gekenntzeichnet (guter Stil aber nicht verlangt) Wie findet man die nötigen Informationen über Bibliotheksklassen? In der Online-Dokumentation nachschauen "Java ist auch eine Insel" online mit guten Code-Beispielen 35 von 50
35 Entwurfsgrundsatz: Vererbung Vererbung sollte nur verwendet werden, wenn eine "ist-ein"-beziehung zur Oberklasse besteht Bsp: Billarkugel ist eine Kugel d.h. gesamte Funktionalität der Kugel macht auch bei der Billardkugel einen Sinn. Aber: Bsp: Billardkugel ist kein Ballon: Ballon kann Grösse verändern, steigen und sinken "Zeppelin ist Ballon" ist eigentlich schon ein Grenzfall 36 von 50
36 Übung Vererbungen in der Praxis Entwickeln Sie aus: Fahrzeug, PKW, Taxi, Nutzfahrzeug, Bus, Bagger, Lastwagen, VW, Golf, Ferrari, Testerossa einen Vererbungsbaum. Zeichnen Sie das dazugehörige Klassendiagramm. 37 von 50
37 Polymorphismus 38 von 50
38 Die Prinzipien der OOP Die zentralen Konzepte von OOP sind: Kapselung (encapsulation): Zusammengehörige Informationen in Objekten gruppieren und sie gegenüber der Aussenwelt abschirmen: letzte Vorlesung Erweiterung durch Vererbung (inheritance): Neue Klassen können aus existierenden Klassen abgeleitet werden, ohne dass die Integrität der Originalklasse beeinträchtigt wird (Open-closed Prinzip): die vorhergehenden Folien dieser Vorlesung Polymorphismus (polymorphism): folgende Folien dieser Vorlesung 39 von 50
39 "Vielgestaltigkeit" Polymorphismus Polymorphismus ("Vielgestaltigkeit" ) beschreibt eine Eigenschaft objektorientierter Sprachen, bei der die korrekte Methode von mehreren gleichnamigen Methoden (im Bsp.: draw (Graphics g) ) durch den Objekttyp bestimmt wird, auf dem sie arbeiten soll. class Figure { protected int x,y,w,h; public void draw(graphics g){... class Circle extends Figure public void draw(graphics g){ g.drawoval(x,y,w,h)... class Rectangle extends Figure public void draw(graphics g){ g.drawrect(x,y,w,h) von 50
40 Prinzipien des Polymorphismus Ein Objekt behält immer die Identität der Klasse, aus der es erzeugt wurde. Figure (Ein Objekt kann nie in ein Objekt int x,y,w,h einer anderen Klasse konvertiert werden!) void draw() Wenn eine Methode auf ein Objekt aufgerufen wird, wird immer die Methode verwendet, die mit der Klasse des Objekt verbunden ist Rectangle void draw() Line int x2,y2 void draw() Circle int mx,my void draw() 41 von 50
41 Dynamischer, statischer Typ Welche draw() Methode wird aufgerufen? Figure fig = new Rectangle( ); fig.draw(g); Antwort: Es wird die draw Methode von Rectangle aufgerufen Regel: es wird immer die Methode der Klasse aufgerufen, die (dynamisch) der Variablen zugewiesen wurde. Statischer Typ: Typ der Variablen, wie sie deklariert wurde Dynamischer Typ: Typ (Klasse) des Objekts, das der Variablen zugewiesen wurde; Referenztyp -> auf den die Variable zeigt. 42 von 50
42 Casting up Erzeugen von Objekten und Zuweisen an Variable Figure int x,y,w,h Figure fig = new Figure(.); Rectangle rect = new Rectangle(.); void draw() Upcast Figure fig = new Rectangle( ); Rectangle void draw() Line int x2,y2 void draw() Circle int mx,my void draw() In der Klassenhierarchie eine Referenz nach oben geben(casting up) Da jede erbende Klasse alle Methoden der Oberklassen besitzt ist das "sicher". es es kann kann nicht nicht zu zu Fehlern Fehlern führen führen 43 von 50
43 Casting down In der Klassenhierarchie eine Referenz nach unten geben (casting down, unsafe casting ) Figure fig = new Rectangle( ); in in fig fig könnte könnte auch auch Line, Line, Circle Circle oder oder Figure Figure sein sein Rectangle rect = fig; Rectangle Der Downcast ist "unsicher" und muss deshalb explizit angeben werden void draw() Figure int x,y,w,h void draw() Line Circle int x2,y2 int mx,my void draw() void draw() Rectangle rect = (Rectangle) fig; 44 von 50
44 ClassCastException, instanceof Folgende Sequenz führt zu einem Laufzeitfehler: ClassCastException Figure fig = new Circle( ); Rectangle rect = (Rectangle) fig; Vorher testen, ob ein Objekt zu einer bestimmten Klasse gehört oder nicht instanceof ist ein Schlüsselwort Verwendung if (fig instanceof Rectangle){Rectangle rect = (Rectangle) fig; 45 von 50
45 Zusammenfassung Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus 46 von 50
46 Noch Fragen? 47 von 50
47 Anhang: overloading und overriding Overloading bedeutet, dass es zwei oder mehr Methoden mit dem gleichen Namen (innerhalb einer Klasse) gibt, die sich durch Parameter unterscheiden. Der Unterschied kann in der Anzahl der Parameter oder dem Typ oder beidem bestehen. Der Java-Compiler wählt aufgrund der Parameter die richtige aufzurufende Methode aus ("most specific" algorithm) Overriding (Überschreiben) einer Methode in einer Unterklasse bedeutet, dass eine Methode mit dem gleichen Namen und Parameter wie in der Oberklasse geschrieben wird. Das Java-Laufzeitsystem nimmt immer die Methode, die zur Klasse des Objekts gehört. [Quelle: Java für Studenten] 48 von 50
48 Beispiel einer Anwendung Ein kleines Zeichenprogramm (innerhalb einem Form) Figure [] figs = new Figure[4]; public void init () { figs[0] = new Circle(...); figs[1] = new Line(...); figs[2] = new Line(...); figs[3] = new Rectangle(...); public void paint(graphics g) { for (int i = 0; i < figs.length; i++) { figs[i].draw(g)); 49 von 50
49 Anhang: Mehrfachvererbung bei z.b. C++ Einfachvererbung (single inheritence): Eine Unterklasse kann in Java nur von einer Oberklasse erben, nicht von mehreren wie z.b. in C++ Transportmittel Problem: diamond inheritance Erbt die Klasse Wasserflugzeug die Methoden von Flugzeug oder von Boot? Flugzeug Boot Für Mehrfachvererbung gibt es in Java zu diesem Zweck das Konzept der Interfaces: Nur Deklaration der Schnittstelle, keine Implementation der Klasse Problem wird umgangen! Wasser- Flugzeug << 50 von 50
Vererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
MehrVererbung, Polymorphismus
Vererbung, Polymorphismus Einführung Beispiel Automobilbau: Eine Firma produziert eine Limousine Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus Ein Kunde
MehrObjektorientierte 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
MehrEinstieg 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
MehrVererbung, 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
MehrKurs OPR. Objektorientierte Programmierung
Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung
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
MehrVererbung. 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
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
MehrProgrammieren 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
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
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]
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: 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
MehrJAVA 05: Objektorientierte Konzepte
Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots. falls Zeit: Scheduling 8.11.
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots falls Zeit: Scheduling 8.11.2016 IT I - VO 5 1 Organisatorisches VO nächste Woche im Peter-Tunner-HS! Tutorium
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfung. Einführung Vererbung. Roboter in becker.robots. Filialenbelieferung 4.11.
IT I: Heute Nachbetrachtung Wissensüberprüfung Einführung Vererbung Roboter in becker.robots Filialenbelieferung 4.11.2014 IT I - VO 4 1 Organisatorisches Tutorium am Mi, 12.11. schon um 11 Uhr (bis 12:30).
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
MehrAlgorithmen 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
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 7.11.2017 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die 5. Wissensüberprüfung
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 8.11.2018 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die Wissensüberprüfung
MehrVererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
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
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
MehrEinfü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,
MehrInstitut 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
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrTafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
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
MehrEinführung in die Programmierung I. 11. Vererbung. Stefan Zimmer
Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrVorausgesetzte 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,
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
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
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
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
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.
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
MehrObjekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.
Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:
MehrVererbung 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
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrWas du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.
Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg
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
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
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
MehrObjektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
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:
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrC++ - 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.
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
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
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,
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
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
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)
MehrProgrammiertechnik Klassenvariablen & Instantiierung
Programmiertechnik Klassenvariablen & Instantiierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Klassenvariablen Zur Erinnerung: Klassen bestehen aus Variablen und Methoden; beide zusammen
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
MehrEinfü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
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
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
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
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
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
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
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
MehrHSR 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
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
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Mehr7. Ü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
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
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
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
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
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrInformatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 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,
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,
MehrII.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
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
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
Mehr14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
Mehr