pdf, 4 Folien pro Seite

January 28, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Java
Share Embed Donate


Short Description

Download pdf, 4 Folien pro Seite...

Description

Vererbung – Überschreiben von Methoden

Vererbung – Überschreiben von Methoden

public class Ellipse {

public class Ellipse {

float x, y, r, r2;

float x, y, r, r2;

public double umfang () { return Math.PI * ((this.r + this.r2) * 3 / 2 - Math.sqrt(this.r * this.r2)); }

public double umfang () { return Math.PI * ((r + r2) * 3 / 2 - Math.sqrt(r * r2)); }

}

}

– Dynamische Bindung (late binding)

– Dynamische Bindung (late binding)

– xxx.umfang() für Instanzen von Ellipse

– xxx.umfang() für Instanzen von Ellipse

– xxx.umfang() für Instanzen von Circle

– xxx.umfang() für Instanzen von Circle

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

92

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

93

Vererbung – Dynamische Bindung (late binding)

Vererbung – Überschreiben von Methoden

public class Circle extends Ellipse {

public double umfang () { return Math.PI * ((r + s) * 3 / 2 - Math.sqrt(r * s)); public double umfang () { return 2 * Math.PI * r; }

double r; public double umfang () { return 2 * Math.PI * r; } }

Ellipse e = new Ellipse(); Circle c = new Circle();

– Dynamische Bindung (late binding)

… e.umfang() … … c.umfang() …

– xxx.umfang() für Instanzen von Ellipse – xxx.umfang() für Instanzen von Circle

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

94

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

95

Vererbung (Typ-Subtyp-Beziehung)

Vererbung – Dynamische Bindung (late binding)

A

!

Der Typ des Nachrichtenempfängers entscheidet, welche Methode aufgerufen wird.

class B extends A { … }

Ellipse e = new Ellipse(); Circle c = new Circle();

B

– jedes B ist auch ein A, B ist Subtyp von A – überall, wo ein A erwartet wird, darf auch ein B auftauchen

… e.umfang() … … c.umfang() …

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

96

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

97

Vererbung – Dynamische Bindung (late binding)

Vererbung (Typ-Subtyp-Beziehung)

Ellipse e; Circle c; class Circle extends Ellipse { … }

if (das_Wetter_ist_schoen()) e = new Ellipse(); else e = new Circle(); … e.umfang() …

– jeder Kreis ist auch eine Ellipse, Circle ist Subtyp von Ellipse – überall, wo eine Ellipse erwartet wird, darf auch ein Kreis auftauchen

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

! 98

Methodenauswahl zur Laufzeit parametrischer Polymorphismus

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

99

Vererbung (Struktursicht, Finalisieren von Klassen)

Vererbung (Typsicht)

Welche Komponenten hat eine Klasse ? class Circle extends Ellipse { … }

Attribute (Instanzvariablen) – alle Attribute der Superklasse (und damit aller Superklassen) – alle eigenen (lokalen) Attribute

(nur) Intuition : U Universum aller Objekte, Ellipse Menge von Objekten, die gewisse Merkmale ihrer Instanzen verlangt (x, y, r, r2, …) Also: Ellipse ⊆ U (alle Ellipsen sind Objekte) Analog: Circle ⊆ U. Circle verlangt mehr Merkmale (double r) als Ellipse, ist also eine kleinere Menge von Instanzen, also Circle ⊆ Ellipse Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

100

Methoden – alle Methoden der Superklasse, die nicht durch eine gleiche lokale Methode (Name und Signatur) überschrieben werden – alle lokalen Methoden

Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009)

101

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF