Vorlesung 8. Sitzung Grundlegende Programmiertechniken

Größe: px
Ab Seite anzeigen:

Download "Vorlesung 8. Sitzung Grundlegende Programmiertechniken"

Transkript

1 Vorlesung 8. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU

2 Grundlegende Programmiertechniken, WS 2007/2008 OOP-Abstraktionsmittel: Vererbung

3 Konzept»Vererbung«in OOP/Java: Einleitung Vererbung: Modellierung einer "is-a"-beziehung zwischen Datentypen "X is-a Y" "Y erbt von X" Sinn? Wiederverwendung von Code. Bisher: Fokus auf Aggregation has-a Relation. Raum hat eine Dimension. Matrix hat eine multidimensionale Datenliste. -3-

4 class Dimension x y z getdim() has-a Aggregation class Raum Dimension addvector() class Dimension x y z getdim() class Raum extends Dimension x y z getdim() addvector() Vererbung Die Die Klasse Klasse von von der der geerbt geerbt wird, wird, heißt heißt Oberklasseoder Superklasse. is-a -4- Die abgeleitete Klasse heißt Unterklasse oder Subklasse.

5 Was wird vererbt? Was Subklassen erben können: Attribute ihrer Oberklasse Methoden ihrer Oberklasse In der Unterklassen können weitere Attribute und Methoden definiert werden. -5-

6 extends Schlüsselwort extends bei der Klassendeklaration der Subklasse wird Vererbung initiiert: class SUBKLASSE extends SUPERKLASSE { Die Superklasse muss nichts angeben, damit geerbt werden kann. Kann aber angeben, dass die Klasse keine Unterklassen erlaubt: final class Eine Subklasse hat immer nur eine direkte Superklasse. Keine direkte Mehrfachvererbung via extends möglich. Vererbungshierarchien jedoch sehr gut möglich. -6-

7 Einfaches Beispiel: Student erbt von Person (1) public class Person { public String name; public short age; public String getpersondata( ){ return name+"\n"+age+"\n"; Student erbt name, age, getpersondata() von Person Student erbt name, age, getpersondata() von Person public class Student extends Person { public int id; public String getstudentdata( ){ return getpersondata()+id+"\n"; In In Person Person implementiert und und hierhin hierhin vererbt. Unterklasse fügt fügt weitere, eigene eigene Student-Klasse kann kann auch auch auf auf geerbtes name nameund age age und hinzu. zugreifen. Attribute und Methoden hinzu. (System.out.println(name+","+age);) -7-

8 Einfaches Beispiel: Student erbt von Person (2) public class Test { public static void main(string[] args) { Person person = new Person(); Hans person.name = "Hans"; 55 person.age = 55; System.out.println( person.getpersondata() ); Student studi = new Student(); In In der der KlassePerson studi.name = "Samson"; implementiert und und an an studi.age = 20; Student vererbt. studi.id = 110; System.out.println( studi.getstudentdata() ); In In der der Klasse Klasse Student implementiert. Samson

9 Vererbung in OOP und Java: Überschreiben, Überdecken (1) Unterklassen können die Methoden ihrer Oberklasse überschreiben Überschriebene Methoden müssen bei gleicher Typsignatur auch den gleichen Rückgabetyp haben Ausnahme: private deklarierte Methoden der Oberklasse Unterklassen können die Attribute ihrer Oberklasse überschreiben Die Methode oder das Attribut der Oberklasse bleibt erhalten und wird überdeckt -9-

10 Einfaches Beispiel: Überschreiben von Eigenschaften public class Person { public String name ="Anonyme Person"; public short age=1; public String getpersondata( ){ return name+"\n"+age+"\n"; überschreibt public class Student extends Person { public String name = "Anonymer Student"; public int id; public String getpersondata( ){ return "Student: "+name+" ("+id+","+age+")"; Anonyme Anonyme Person Person 1 public class Test { 1 public static void main(string[] args) { Person person = new Person(); System.out.println( person.getpersondata() ); Student studi = new Student(); System.out.println( studi.getpersondata() ); Was wird überschrieben? Was wird überschrieben? Student-Klasse Student-Klasse verwendet verwendet nun nun wessen wessen Eigenschaften? Eigenschaften? Objekte Objekte verwenden verwenden wessen wessen Eigenschaften? Eigenschaften? Ausgabe? Ausgabe? überschreibt Student: Student: Anonymer Anonymer Student Student (0,1) (0,1)

11 Vererbung: private Elemente in der Superklasse Zugriff auf die Attribute und Methoden der Oberklasse: Nur möglich, wenn diese nicht private deklariert sind

12 Einfaches Beispiel: Vererbung und private-elemente public class Person { private String name = "Anonyme Person"; private short age = 1; public String getpersondata( ){ return name+"\n"+age+"\n"; public String getname() { return name; ; public short getage() { return age; ; public class Student extends Person { public int id; public String name = "Anonymer Student"; Direkter Zugriff Zugriff nur nur innerhalb dieser dieser Klasse. Subklassen können nur nur über über entsprechende, öffentliche Methoden auf auf private-elemente zugreifen. Zugriff z.b. z.b. auf auf age age nur nur via via getage() public String getpersondata( ){ return "Student: "+ name +" ("+id+","+getage()+")"; Verwendung von überschriebenem name, und nicht des private-name aus Person! name = "Schorsch Maikel"; // ok, warum? age = 10; // Kompilierungsfehler, da hier nicht sichtbar!

13 Vererbung: Zugriff auf Überschriebenes, Konstruktoren Bekannt: Innerhalb der Klasse Zugriff auf dort definierte Felder und Methoden via this this.variable oder this.methode this(konstuktor-argumente) Zugriff auf (überschriebene) Elemente der Superklasse via super super.einevariable super.einemethode( ARGUMENTE ) super( ARGUMENTE ) Aufruf eines Konstruktors der Oberklasse Nur zulässig als erste Anweisung eines Konstruktors der Unterklasse Ausnahme: private Elemente der Superklasse

14 Einfaches Beispiel: Zugriff auf Überschriebenes public class Person { private String name = "Anonyme Person"; private short age = 1; public String getpersondata( ){ return "Name: "+name+" / Alter: "+age; public String getname() { return name; public short getage() { return age; public class Student extends Person { public int id=999; public String name = "Anonymer Student"; public String getpersondata( ){ return super.getpersondata()+" / ID: "+id; // Person person = new Person(); System.out.println( person.getpersondata() ); Student studi = new Student(); studi.name = "Barny"; Ausgabe? System.out.println( studi.getpersondata() ); // Student kann auf die Methoden, jedoch auf kein Datenfeld aus Person via super. direkt zugreifen. Warum? Name: Anonyme Person / Alter: 1 Name: Anonyme Person / Alter: 1 / ID: 999

15 Vererbung: Konstruktoren der Oberklasse Konstruktoren der Oberklasse werden nicht vererbt aber: Wenn die Superklasse einen selbst implementierten Konstruktor besitzt, muss dieser in der Subklasse im Konstruktor aufgerufen werden: super( ARGUMENTLISTE ) Ist immer die erste Anweisung im Konstruktor, sonst kommt es zum Kompilierungsfehler.»Ausnahme«: Parameterloser Konstruktor. Implizit wird die obere Definition nämlich erfüllt

16 Einfaches Beispiel (1) : Konstruktoren der Oberklasse Person public class Person { private String name = "Anonyme Person"; private short age = 1; // Einfacher Konstruktor zur Initialisierung public Person(String name, short age) { this.name = name; this.age = age; // Kein impliziter default-konstruktor mehr. Es muss hier // ein eigener implementiert werden, falls er benötigt wird! public Person() { // Verwende default-werte der Instanzvariablen public String getpersondata( ){ return "Name: "+name+" / Alter: "+age; public String getname(){ return name; public short getage(){ return age;

17 Einfaches Beispiel (2) : Konstruktoren der Unterklasse Student public class Student extends Person { private int id=-1; private String name = "not set"; public Student(String name, short age) { super( name, age ); super() muss bei bei vorhandenem Oberklassen-Konstruktor mindestens public Student(int id) { einmal aufgerufen werden. super( "N/A",(short)-1 ); public Student( String name ) { this( name, (short)-1 ); public Student( ) { // super( "N/A",(short)-1 ); können auch weitere Anweisungen // oder super(...), this(...) implementiert werden. // oder (fast) gar nichts Daraus folgt: Die Die Klasse könnte mit mit public String getpersondata( ){/* deshalb Implementierung nicht unbrauchbar.) wie gehabt */ Weitere Konstruktoren rufen den den super()- verwendenden Konstruktor mit mit this() und und entsprechenden Argumenten auf, auf, oder oder rufen selbst super() (mit/ohne Arg.) auf. auf. Sonderfall: Parameterloser Konstruktor Immer impliziter Aufruf von von super(). Es Es einzig und und allein diesem Konstruktor kompiliert werden. (Hier sinnlos, aber aber

18 Was Sie bei super(), this() nicht als Argumente verwenden dürfen Instanzvariablen oder methoden Superklassen-Elemente

19 (Negativ-)Beispiel: Instanzelemente bei this()bzw. super() Anweisungen public class StudentKaputt extends Person { private int id = -1; private String name = "not set"; public StudentKaputt(int id) { super(this.name, (short) -1); public StudentKaputt(int id) { super(name,(short)-1); public StudentKaputt(int id) { String tmpname = this.name; super(tmpname, (short) -1); public StudentKaputt(int id) {super(super.getname(), super.getage()); public StudentKaputt() { this(); // Hier sinnlos, aber möglich public String getpersondata() {/* Wie gehabt */ Abgesehen vom Verstoß gegen das Überladungsprinzip sind (fast) alle (rot gerahmten) Kontruktoren wegen Verwendung von Instanzelementen oder Superklassenelementen falsch!

20 Vererbung: Vererbungshierarchie Vererbung kann in mehreren Stufen erfolgen, man spricht von einer Vererbungshierarchie Beispiel: Tierhierarchie (für z.b. The Sims: Animalities )

21 Einfaches Bsp.: Tier-Vererbungshierarchie class Animal { float weight; void eat() { /* */ void sleep() { /* */ void reproduce() { /* */ class Mammal extends Animal { // inherits weight int heartrate; // inherits eat( ), sleep( ), reproduce() void breathe() { /* */ // overrides reproduce() void reproduce() { /* */ class Cat extends Mammal { // inherits weight and heartrate boolean longhair; // inherits eat( ), sleep( ), reproduce(), breathe() void purr() { /* */ void sleep() { /* */ // overrides Mammal's sleep() void huntmice() { /* */

22 Illustration: Methodenaufrufe in der Tierhierarchie (zur Laufzeit) CatSimon (Objekt, Typ Cat) ruft die Methoden auf. Wessen Methode wird jeweils aufgerufen(?): Durchgezogene Linie

23 Einschub: Klasse Object Alle bislang gesehenen und impl. Klassen erbten bereits: KlasseObject ist Superklasse aller Klassen Folglich: Explizites extends unnötig Object vererbt u.a. Methoden wie: clone() equals(object obj) tostring()

24 protected Sichtbarkeit(-smodifikator) protected Sichtbarkeitsmodifikator kontrolliert Sichtbarkeit auf Vererbungs- und Paketebene Verwendung wie bei anderen Sichtbarkeitsmodifikatoren protected String name; Sichtbarkeit fürprotected Variablen/Methoden: Abgeleitete Klassen Alle Klassen im deklarierten Paket Abgeleitete Klassen können sich auch in anderen Paketen befinden

25 Zusammenfassung einiger essentieller Details zur Vererbung Klassen in Java können von anderen Klassen erben Klassen erben alle Attribute ihrer Oberklasse Klassen erben alle Methoden ihrer Oberklasse Zugriff auf die Attribute und Methoden der Oberklasse ist nur möglich, wenn diese nicht private deklariert sind Unterklassen können die Methoden ihrer Oberklasse überschreiben Unterklassen können die Attribute ihrer Oberklasse überschreiben Unterklassen können weitere Attribute und Methoden definieren Vererbung kann in mehreren Stufen erfolgen, man spricht von einer Vererbungshierarchie (Siehe Tier-Hierarchie) Klassen erben nicht die Konstruktoren der Oberklasse

26 Simulierte Vererbung Vererbung kann auch via Aggregation simuliert werden Anstatt von is-a: has-a mit Instanzvariablen/-methoden Variante für die letzten Beispiele: Ein Student hat Personendaten Personendaten als Instanzvariable von Student Personendaten implementiert bspw. name, wohnort Ein Animal hat Beduerfnisse Beduerfnisse implementiert bspw. eat(), reproduce() Ein Mammal hat Lunge, Beduerfnisse Lunge implementiert bspw. breath()

27 Polymorphie: Definitionen Ein Objekt ist gleichzeitig Instanz seiner unmittelbaren Klasse und aller Klassen, von denen es sich in der Vererbungshierarchie ableitet. Daraus folgt: Objekte einer Klasse können an allen Stellen verwendet werden, an denen auch Objekte, die in der Vererbungshierarchie höher stehen, stehen dürften. Beispiel: Cat somecat = new Cat(); Cat Instanz welcher Klassen? Object, Animal, Mammal, Cat

28 Polymorphie: Dynamischer/Statischer Typ, Methodenaufrufe Methodenaufrufe rufen immer die Methoden des tatsächlichen (dynamischen) Typs auf, nicht die des deklarierten Typs der Variable. Beispiel: Animal catsimon = new Cat(); Deklarierter/Statischer Typ: Tatsächlicher/Dynamischer Typ: Animal Cat Nur Methoden des deklarierten Typs können aufgerufen werden, nicht die des tatsächlichen Typs

29 Beispiel: Polymorphie, Methodenaufrufe Auf welche Methoden kann catsimon zugreifen, und wessen Typs sind sie, wenn die Anweisungen wären: Animal catsimon = new Cat(); catsimon.sleep(); eat(), sleep(), reproduce() (Methoden des deklarierten Typs). Cat Cat catsimon catsimon = new new Cat(); Cat(); catsimon. catsimon. catsimon catsimon kann jedoch welche Methoden nicht aufrufen? Alle in Cat implementierten.

30 Polymorphie: cast Der tatsächliche Typ kann via cast Operator und entsprechendem Ausdruck»zurückgeholt«werden: Animal catsimon = new Cat(); catsimon.purr(); catsimon kann kann an an dieser dieser Stelle Stelle nicht nicht schnurren (purr()) purr() nicht nicht in in Animal (deklarierter Typ): Typ): Fehler! ((Cat)catSimon).purr(); purr() - Aufruf Aufruf nach nach erfolgreichem Cast Cast möglich. Klammerungen in in allen Fällen obligatorisch, warum? Punkt-Operator (.) (.) hat hat höhere Präzedenz als als der der Cast-Operator (TYP)

31 Cast-Beispiel mit Arrays //... Animal[] farm = new Animal[3]; cast-operator: (ZIELTYP) VARIABLE // farm[0] = new Animal(); farm[1] = new Mammal(); farm[2] = new Cat(); farm[0].eat(); farm[1].reproduce(); farm[2].sleep(); ((Cat)farm[2]).sleep(); ((Mammal)farm[2]).reproduce(); ((Mammal)farm[2]).purr(); Okay? Nein. Mammal hat purr() nicht implementiert! Die Methoden wessen Typs werden aufgerufen? Jeweils die des dynamischen Typs (Animal, Mammal, Cat). Die Methoden wessen Typs werden aufgerufen? Cat

32 Typ-Überprüfung von Objekten mit instanceof Operator //... main-methode... Animal[] farm = new Animal[3]; farm[0] = new Animal(); farm[1] = new Mammal(); farm[2] = new Cat(); farm[0].eat(); farm[1].reproduce(); farm[2].sleep(); ((Mammal)farm[2]).purr(); Exception in in thread "main" java.lang.error: Unresolved compilation problem: The method purr() is is undefined for the type Mammal // if ( farm[2] instanceof Cat ) { ((Cat)farm[2]).purr(); OBJEKT(-VARIABLE) instanceof TYP Überprüft, ob ob OBJEKT(-VARIABLE) vom Datentyp TYP ist. Typ des Rückgabewerts ist ist boolean.

33 Diverses Termine für Blocktutorien für die Klausur spätestens Anfang der Winterferien Wiederholung des gesamten Stoffs, Teilnehmerwünsche rechtzeitig einsenden Termin höchstwahrscheinlich eine Woche vor den Klausuren. Generics/Generezität: Zum Ende der Vorlesungszeit Nochmal: Vorlesungsfolien stets nachbereiten, Beispiele nachvollziehen, nachimplementieren, verstehen. Analoges gilt für die Übungsaufgaben und ggfs. Zusatzblätter!

Javakurs für Anfänger

Javakurs 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

Mehr

Programmieren in Java

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

Mehr

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

Vererbung 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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Vererbung, Polymorphie

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

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

Mehr

Programmieren in Java

Programmieren 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

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java 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

Mehr

Vererbung. 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. 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

Mehr

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

4. 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

Mehr

Erste Java-Programme (Java Wiederholung & Vererbung)

Erste Java-Programme (Java Wiederholung & Vererbung) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

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

Institut 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

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. 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

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen 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

Mehr

Programmierung Nachklausurtutorium

Programmierung 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

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Wintersemester 2006/2007 Computerlinguistik, Campus DU Überblick Seite 2 Vererbung Polymorphie Packages Kapselung, Zugriffsmodifier OOP und Vererbung Grundlegender Mechanismus für hierarschische

Mehr

Informatik II Übung 6

Informatik 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,

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs 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

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben 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

Mehr

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

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

Mehr

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

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

Mehr

Einführung in die Programmiersprache Java II

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

Mehr

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

2.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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: 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

Mehr

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1 9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Abschnitt 12: Vererbung und Polymorphismus

Abschnitt 12: Vererbung und Polymorphismus Abschnitt 12: Vererbung und Polymorphismus 12. Vererbung und Polymorphismus 12.1 Das Konzept der Vererbung 12.2 Vererbung in Java 12.3 Abstrakte Klassen und Polymorphismus 12 Vererbung und Polymorphismus

Mehr

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

FH 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

Mehr

JAVA 05: Objektorientierte Konzepte

JAVA 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

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzü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

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. 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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

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

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelü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

Mehr

3 Objektorientierte Konzepte in Java

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

Mehr

Javakurs für Anfänger

Javakurs 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

Mehr

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

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

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die 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:

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

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

Mehr

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

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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs 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

Mehr

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

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

Mehr

Überschreiben von Methoden

Ü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

Mehr

Vererbung, Polymorphismus

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

Mehr

6. Globalübung (zu Übungsblatt 8)

6. 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

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Vererbung 2 Packages Packages dienen zur Strukturierung von Klassen Computer.java package BEZEICHNER ; package vorlesung7; public class KLASSEN-BEZEICHNER { public

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte 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

Mehr

Implementieren von Klassen

Implementieren 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

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Objektorientierte Programmierung III

Objektorientierte 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

Mehr

Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit

Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit Klassen und ihre Beziehungen II: Einfache Vererbung und Abhängigkeit Martin Wirsing Ziele en Begriff der einfachen und mehrfachen Vererbung verstehen Vererbung und Redefinition von Oberklassenmethoden

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch 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

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.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

Mehr

Info B VL 11: Innere Klassen/Collections

Info B VL 11: Innere Klassen/Collections Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden 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

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke 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

Mehr

Programmieren in Java

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

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Arten von Klassen-Beziehungen

Arten 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

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

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

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

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung (Teil 3) Vererbung & Enums 2 Wiederholung (Packages) Der Package-Name wird zum unmittelbaren Teil des Klassennamens Um eine Klasse aus einem anderen Paket nutzen zu

Mehr

Wiederholung zur Vorlesung Programmieren

Wiederholung zur Vorlesung Programmieren Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben

Mehr

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Friend Klassen In einigen Fällen kann es notwendig werden, dass andere Klassen oder Funktionen

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. 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

Objektorientierung (OO)

Objektorientierung (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

Mehr

Programmieren 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 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:

Mehr

Innere 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 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

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke 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

Mehr

SWE1 / Übung 9 (11.01.2012)

SWE1 / Übung 9 (11.01.2012) SWE1 / Übung 9 (11.01.2012) Vererbung Zugriffskontrolle Motivation für Vererbung (1) Objekte in der realen Welt kommen oft in ähnlichen Varianten (Attribute, Verhalten) vor Gliederung durch hierarchische

Mehr

Einführung in die Programmierung für NF. Vererbung

Einfü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

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen

Mehr

Java für Bauingenieure

Java 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

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

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

Einfü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

Mehr

Informatik II - Tutorium 6

Informatik II - Tutorium 6 Informatik II - Tutorium 6 Vincent Becker vincent.becker@inf.ethz.ch 11.04.2018 Vincent Becker 11.04.2018 1 Teilnehmer für Projekte gesucht Falls jemand gerne an Experimenten teilnimmt, ein Email an mich

Mehr

Was 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. 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

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und

Mehr

Praxis der Programmierung

Praxis der Programmierung Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort

Mehr

Programmieren 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 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

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

Mehr

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 567

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 567 Überblick 6. Grundlagen der objektorientierten Programmierung 6.1 Abstrakte Datentypen: von Structures zu Klassen 6.2 Das objektorientierte Paradigma 6.3 Klassen und Objekte in Java 6.4 6.5 Interfaces

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte 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/

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads

Mehr

Vererbung und Polymorphie

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

Mehr