Beispiel: (Vererbung) Vererbung. Begriffsklärung: (Vererbung) Feststellungen: Vererben von Attributen: Hinzufügen von Attributen:
|
|
- Oskar Hilko Solberg
- vor 6 Jahren
- Abrufe
Transkript
1 5.3.3 Vererbung Begriffsklärung: (Vererbung) Vererbung (engl. inheritance) im engeren Sinne bedeutet, dass eine Klasse Programmteile von einer anderen übernimmt. Die erbende Klasse heißt Subklasse, die vererbende Klasse heißt Superklasse. In Java sind die ererbten Programmteile Attribute, Methoden und geschachtelte Klassen, nicht vererbt werden Klassenattribute, Klassenmethoden und Konstruktoren. In Java ist die Subklasse immer ein Subtyp des Typs der Superklasse. Vererbung unterstützt Spezialisierung durch: - Hinzufügen von Attributen (Zustandserweiterung) - Hinzufügen von Methoden (Erweiterung der Funktionalität) - Anpassen, Erweitern bzw. Reimplementieren von Supertyp-Methoden (Anpassen der Funktionalität) A. Poetzsch-Heffter, Universität Kaiserslautern 647 Beispiel: (Vererbung) class Person { String name; int gebdatum; /* Form JJJJMMTT */ void drucken() { System.out.println("Name: "+ this.name); System.out.println("Gebdatum: "+gebdatum); boolean hat_geburtstag ( int datum ) { return (gebdatum%10000)==(datum%10000); Person( String n, int gd ) { name = n; geburtsdatum = gd; class Student extends Person { int matrikelnr; int semester; void drucken() { super.drucken(); System.out.println("Matnr: "+ matrikelnr); System.out.println("Semzahl: "+ semester); Student(String n,int gd,int mnr,int sem) { super( n, gd ); matrikelnr = mnr; semester = sem; A. Poetzsch-Heffter, Universität Kaiserslautern 648 Vererben von Attributen: public int a = 0; int b = 1; private int c = 2; static int d = 3; int getc() { return c; int getb() { return b; public class Attributvererbung { System.out.println("a,D-Obj:"+ dv.a); System.out.println("b,D-Obj:"+ dv.getb()); System.out.println("c,D-Obj:"+ dv.getc()); System.out.println("C.d: "+ C.d); D.d = 13; System.out.println("D.d: "+ D.d); System.out.println("C.d: "+ C.d); Feststellungen: Objekte der Subklassen haben für alle nicht-statischen Attribute der Superklasse eine objektlokale Variable. Statische Attribute werden nicht in dem Sinn vererbt, dass die Subklasse eine eigene Klassenvariable bekommt. Vererbung ist transitiv. Hinzufügen von Attributen: Um den Zustandsraum in Subklassenobjekten zu erweiteren, können Attribute hinzugefügt werden: public int a = 0; int b = 1; private int c = 2; int getc() { return c; public int e = 10; int b = 11; public int c = 12; A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 650
2 Folgendes Fragment demonstriert den Zugriff auf die Attribute: public class Zustandserweiterung {... dv.e // deklariertes e... dv.b // deklariertes b... dv.c // deklariertes c... dv.a // ererbtes a... ((C)dv).b // ererbtes b... dv.getc() // ererbtes c Feststellungen: Attribute können ererbte Attribute gleichen Namens verschatten. Dies sollte vermieden werden, kann aber nicht ausgeschlossen werden. Attribute werden statisch gebunden. D.h. : Maßgebend ist der (statische) Typ des selektierten Ausdrucks und nicht der Typ des Objekts, dass sich bei Auswertung des Ausdrucks ergibt. Vererben von Methoden: public int ma(){ return 0; int mb(){ return 1; private int mc(){ return 2; static int md(){ return 3; int getc() { return mc(); public class Methodenvererbung { System.out.println("ma: " + dv.ma() ); System.out.println("mb: " + dv.mb() ); System.out.println("mc: " + dv.getc() ); System.out.println("D.md: "+ D.md() ); Feststellung: Alle Methoden der Superklasse arbeiten auch auf den Objekten der Subklasse. Vererbt werden aber nur die Methoden, die in der Subklasse zugreifbar sind A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 652 Hinzufügen von Methoden: Um die Funktionalität von Subklassenobjekten zu erweitern, können Methoden hinzugefügt werden: public int ma(){ return 0; int mb(){ return 1; private int mc(){ return 2; int getc() { return this.mc(); public int me(){ return 10; public int mc(){ return 12; public class MethodenHinzufuegen { System.out.println("me: " + dv.me() ); System.out.println("mc: " + dv.mc() ); System.out.println("C:mc:"+ dv.getc() ); Feststellung: Auch bei den Methoden kann es zur Verschattung kommen A. Poetzsch-Heffter, Universität Kaiserslautern 653 Anpassen von Methoden: In vielen Fällen ist es nötig, die Implementierung einer Methode der Superklasse in der Subklasse anzupassen, insbesondere um den erweiterten Zustand mit zu berücksichtigen. In den meisten objektorientierten Programmiersprachen geschieht die Anpassung durch einen Mechanismus, den man Überschreiben nennt: Begriffsklärung: (Überschreiben) Überschreiben (engl. overriding) einer ererbten Methode m der Superklasse bedeutet, dass man in der Subklasse eine neue Deklaration für m angibt. Die überschreibende Methode muss in Java die gleiche Signatur wie die überschriebene haben und mindestens so zugreifbar sein. Die überschriebene Methode muss zugreifbar sein und kann durch super -Aufrufe benutzt werden: super.<methodenname>( <AktParam1>,...) Der aktuelle implizite Parameter eines Super-Aufrufs ist der aktuelle implizite Parameter der aufrufenden Methode A. Poetzsch-Heffter, Universität Kaiserslautern 654
3 Beispiel: (Überschreiben) private int a = 0; public void drucke(){ System.out.println("a: " + a); this.spruch(); public void spruch() { System.out.println("Er erblich."); private int b = 1; public void drucke(){ super.drucke(); System.out.println("b: " + b); this.spruch(); public void spruch() { System.out.println("erblich vorbelastet"); Beachte: Überschreiben findet nur statt, wenn die Methode in der Subklasse zugreifbar ist. Konstruktoren und Vererbung: Konstruktoren werden in Java nicht vererbt; d.h. wenn eine Subklasse keinen eigenen Konstruktor deklariert, steht nur der default-konstruktor zur Verfügung. Jeder Konstruktor kann in seiner ersten Anweisung einen Konstruktor der Superklasse aufrufen. Impliziter Parameter ist das neu erzeugte Objekt (Syntax siehe Beispiel). Fehlt ein expliziter Aufruf eines Superklassen- Konstruktors, wird implizit der Konstruktor mit leerer Parameterliste aufgerufen. Gibt es keinen solchen Konstruktor oder ist er nicht zugreifbar, meldet der Übersetzer einen Fehler. public class UeberschreibenTest { dv.drucke(); A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 656 Beispiel: class Superklasse { String a; int b; Superklasse(){ a = "\"Java ist "; Superklasse( int i ){ a = "Auch "+ new Integer(i).toString(); class Subklasse extends Superklasse { Subklasse( String s ){ a = a + s; (zum Umgang mit Konstruktoren) Subklasse( int i, int j ){ super(i*j); a = a + " Wiederholungen machen Legenden"; class VererbungsTest { public static void main( String[] args ){ Subklasse sk = new Subklasse("einfach.\""); System.out.println( sk.a ); sk = new Subklasse(100,10); System.out.print( sk.a ); System.out.println(" nicht wahr."); A. Poetzsch-Heffter, Universität Kaiserslautern 657 Diskussion von Vererbung Vererbung ist ein mächtiges Sprachkonzept. Das Konzept ist im Kern einfach: Statt Programmcode explizit von der Super- in die Subklassen zu kopieren, steht der vererbte Code automatisch in der Subklasse bereit. Vorteile gegenüber explizitem Kopieren & Einfügen: - zuverlässiger - Reduktion der Programmcodegröße - besser zu warten/pflegen - Spezialisierung unzugänglicher Programmteile wird erleichtert Die sprachliche Umsetzung führt bei den meisten Sprachen zu komplexen Wechselwirkungen zwischen den Konstrukten: - zur Vererbung - zum Information Hiding (private, protected,...) - zur dynamischen Methodenauswahl A. Poetzsch-Heffter, Universität Kaiserslautern 658
4 Beispiel: class Oberklasse { String a; (Konstruktoren/dyn. Bindung) Oberklasse(){ a = "aha"; m(); void m(){ System.out.print("Laenge a:"+a.length()); class Unterklasse extends Oberklasse { String b; Unterklasse(){ b = "boff"; m(); void m(){ System.out.print("Laenge b:"+b.length()); class KonstruktorProblemTest { public static void main( String[] args ){ new Unterklasse(); A. Poetzsch-Heffter, Universität Kaiserslautern 659 In Verbindung mit Subtyping ist Vererbung: - ein sehr mächtiger Strukturierungsmechanismus, - der die Entwicklung offener Programme unterstützt - und Wartbarkeit und Lesbarkeit verbessert (bei geeignetem Einsatz). Subclassing = Subtyping + Vererbung Wir betrachten den Zusammenhang zwischen Subtypbildung und Vererbung. Für Java ist das insbesondere der Zusammenhang von - Schnittstellentypen - abstrakten Klassen - (vollständigen) Klassen Begriffsklärung: (abstrakte Meth. & Klassen) Eine Methode heißt abstrakt, wenn für sie kein Rumpf angegeben ist. Eine Klasse heißt abstrakt, wenn sie abstrakte Methoden besitzt oder als abstrakt deklariert ist (Modifikator ). Es ist unzulässig, Instanzen abstrakter Klassen zu erzeugen A. Poetzsch-Heffter, Universität Kaiserslautern 660 Abstrakte Klassen stehen zwischen Schnittstellen und vollständigen Klassen: Schnittstellentyp: - keine Attribute, keine Methodenimplementierung - Typ umfasst alle Objekte der Subklassen Typ deklariert durch abstrakte Klasse: - Attribute, Methodenimplementierung (Vererbung) - Typ umfasst alle Objekte der Subklassen Typ deklariert durch vollständige Klasse K: - Attribute, Methodenimplementierung (vollständig) - Objekterzeugung - Typ umfasst die Objekte von K und alle Objekte in Subklassen Den Zusammenhang zwischen diesen Sprachkonzepten studieren wir anhand folgenden Beispiels A. Poetzsch-Heffter, Universität Kaiserslautern 661 Beispiel: A void mp() C (Realisieren von Typhierarchien) void mp() void mq() void mr() Drei Realisierungsvarianten: A. Poetzsch-Heffter, Universität Kaiserslautern 662 B void mq() D void mp() void mq() void ms() 1. Nur Subtyping, keine Vererbung: - A und B als Schnittstellen - C und D als Klassen 2. Einfache Vererbung von einer Klasse: - A als abstrakte Klasse - B als Schnittstelle - C und D als Klassen, erben von A. 3. Mehrfachvererbung: - A, B, C und D als Klassen; C, D erben von A u. B.
5 1. Variante: interface A { ; void mp(); interface B { ; void mq(); class C implements A, B { int a, b, c; c = 2000;... { // dieser Block benutzt nur Attribut a // und ist identisch mit entsprechendem // Block in Klasse D... a... c = a + c; // benutzt die Attribute a und c public void mq(){ b = 73532; public void mr(){ A. Poetzsch-Heffter, Universität Kaiserslautern 663 class D implements A, B { int a, b; String d; // dieser Block benutzt nur Attribut a // und ist identisch mit Block in Klasse C... a... // benutzt die Attribute a und d public void mq(){ b = 73532; public void ms(){... C und D haben das Attribut a und den Block in der Methode mm gemeinsam. Diese Programmteile lassen sich in A zusammenfassen. 2. Variante: abstract class A { int a; public { // der Block von mm in C aus der ersten // Variante bzw. der Rumpf von mm in D... a... public abstract void mp(); A. Poetzsch-Heffter, Universität Kaiserslautern 664 In der zweiten Variante ist der Typ B nach wie vor als Schnittstelle realisiert. Die Klasse C und D erben von der abstrakten Klasse A: class C extends A implements B { int b, c; c = 2000;... super.mm(); c = a + c; // benutzt die Attribute a und c public void mq(){ b = 73532; public void mr(){... class D extends A implements B { int b; String d; // benutzt die Attribute a und d public void mq(){ b = 73532; public void ms(){... Diese Variante ist knapper als die erste. Begriffsklärung: (Mehrfachvererbung) Übernimmt eine Klasse Programmteile von mehreren anderen Klassen spricht man von Mehrfachvererbung (engl. multiple inheritance). C++ unterstützt Mehrfachvererbung, Java nicht. 3. Variante: Wir illustrieren Mehrfachvererbung hier mit einer fiktiven Spracherweiterung von Java, die Mehrfachvererbung unterstützt. Klasse A bleibt wie in Variante 2. Typ B wird durch eine Klasse realisiert: class B { int b;... // gemaess den Anforderungen von B public void mq(){ b = 73532; Die Klassen C und D können nun von B erben. Allerdings müssen sie den Konflikt bzgl. mm auflösen A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 666
6 class C extends A, B {// KEIN Java!!! int c; c = 2000;... super.a:mm(); c = a + c; // benutzt die Attribute a und c public void mr(){... class D extends A,B { // KEIN Java!!! String d; super.a:mm(); // benutzt die Attribute a und d public void ms(){... Da in Java Mehrfachvererbung nicht möglich ist, muss man es durch Einfachvererbung und mehrfache Subtypbildung ersetzen, z.b. wie in der zweiten Variante demonstriert. Vererbung und Information Hiding Durch die Vererbung gibt es nun zwei Arten, eine Klasse K zu nutzen: - Anwendungsnutzung: Erzeugen und nutzen der Objekt von K. - Vererbungsnutzung: Spezialisieren und erben von K. Geschützter Zugriff: Damit die erbende Klasse die geerbten Programmteile geeignet nutzen kann, benötigt sie meist einen intimeren Zugriff als ein Anwendungsnutzer. Deshalb gibt es einen Zugriffsbereich für Vererbung, der alle Subklassen einer Klasse umfasst. Programmelemente, die als geschützt deklariert sind, d.h. mit dem Modifikator protected, sind in allen Subklassen zugreifbar. Will man also Programmelemente, insbesondere Attribute, für Subklassen bereitstellen, müssen sie mindestens geschützten Zugriff gewähren. Geschützter Zugriff ermöglicht allerdings erhebliches Verändern einer Klasse in Subklassen und birgt dementsprechend auch Gefahren, wie folgendes Beispiel zeigt A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 668 Beispiel: (geschütztes Zugriffsrecht) package soweitallesok; public class A_nicht_Null { protected int a = 1; public int geta() { return a; protected void seta( int i ) { if( i>0 ) a = i; public class Anwendung {... public static void m( A_nicht_Null ap ){ float f = 7 / ap.geta(); Die Anwendung kann hier davon ausgehen, dass die Instanzvariable a nie den Wert 0 annimmt. Durch Vererbung können Subtyp-Objekte erzeugt werden, die sich ganz anders als die Objekte der Superklasse verhalten: package einhackmitzweck; import soweitallesok.*; public class A_doch_Null extends A_nicht_Null { public int geta() { return -a; public void seta( int i ) { a = i; public class Main { A_doch_Null adn = new A_doch_Null(); adn.seta( 0 ); A_nicht_Null ann = adn;... // hier könnte die Herkunft von // ann verschleiert sein Anwendung.m(ann); Um Szenarien wie im obigen Beispiel zu vermeiden, sollten Subklassen-Objekte das Verhalten der Superklassen-Objekte spezialisieren und sich ansonsten konform verhalten A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 670
7 Zusammenfassende Bemerkungen zu 5.3 Subtypen erlauben es, spezialisierte Objekte anstelle von Supertyp-Objekten zu verwenden. Dadurch können Programme auf der Ebene allgemeinerer Objekte formuliert und wiederverwendet werden. Vererbung erlaubt die Weitergabe und damit Wiederverwendung von Programmteilen der Superklasse an die Subklasse. Subtypen in Kombination mit Vererbung erlauben eine direkte Realisierung von Klassifikationen im Rahmen der Programmierung. Die Vorteile wirken sich vor allem bei der Entwicklung von Programmbibliotheken und Programmgerüsten/Frameworks aus A. Poetzsch-Heffter, Universität Kaiserslautern 671
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Vererbung Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 47 Abstraktionen auf Klassenebene
MehrVererbung Software Entwicklung 1
Vererbung Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Wir wiederholen in diesem Abschnitt zunächst die Grundlagen des Subtyping aus Kapitel 12. Darauf aufbauend werden wir weitere
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
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
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
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
Mehr5.3 Subtypen und Vererbung
5.3 Subtypen und Vererbung Dieser Abschnitt erläutert die Konzepte der Subtypbildung und Vererbung. Überblick: Klassifizieren von Objekten Subtypen und Schnittstellentypen Vererbung Beispiele: (Klassifikationen)
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
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
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
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
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
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
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
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
MehrAnwendungsentwicklung 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,
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
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 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
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
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
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
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
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
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
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
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
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/
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)
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
MehrKlassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete
2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen
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
Mehr5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte
5 Vererbung Subklassen, Superklassen, Pakete Zugriffsrechte Wiederverwendung von Code Konventionelle Methode: Wähle einen Quelltext, der ein ähnliches Problem bearbeitet und passe diesen Text auf das neue
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)
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
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,
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
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. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
MehrStatische Methoden, Vererbung, Benutzereingabe
Statische Methoden, Vererbung, Benutzereingabe Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
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
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
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
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
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,
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
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
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
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
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
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
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
Mehr2.2 Übersetzung objektorientierter Sprachkonstrukte
2.2 Übersetzung objektorientierter Sprachkonstrukte Vorgehen: Sprachmittel objektorientierter Programmiersprachen Übersetzung anhand eines Beispiels Übersetzung von Klassen bei Einfachvererbung Problematik
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
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
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:
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung
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
MehrVererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
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
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
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
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:
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
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
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
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
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
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
MehrFaustregeln zu Zusicherungen
Faustregeln zu Zusicherungen Zusicherungen sollen stabil sein (vor allem an Wurzel der Typhierarchie) keine unnötigen Details festlegen explizit im Programm stehen unmissverständlich formuliert sein während
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
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
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
MehrUntertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit
2013-10-30 Untertypen, Vererbung, Sichtbarkeit 1 185.A01 OOP Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 2 OOP Abstrakte Klassen Polygon ւ ց Triangle Square Hexagon
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
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
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
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
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
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
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.
MehrInhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung
Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg... 1 1.1 Objektorientierung: Konzepte und Stärken...... 1 1.1.1 Gedankliche Konzepte der Objektorientierung....... 2 1.1.2 Objektorientierung als
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:
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
MehrSilke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Mehr zur Objektorientierung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Weitere Aspekte der Objektorientierung Klassen Variablen
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrGrundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
Mehr