• Keine Ergebnisse gefunden

Vererbung in Java: Einführung | informatikZentrale

N/A
N/A
Protected

Academic year: 2022

Aktie "Vererbung in Java: Einführung | informatikZentrale"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

www.informatikzentrale.de

Java:

Vererbung

Teil 1: Grundlagen, UML

(2)

Tiere

Reptilien Säugetiere

Hunde Katzen

Dackel Doggen Angora Kleinohr

Rauhaard. Schlappohrdackel

Hierarchie

Alle Exemplare einer Klasse verfügen über

identische Eigenschaften und nachfolgende Klassen stellen eine Spezialisierung dar.

(3)

www.informatikzentrale.de

Beispiel Vererbung: Konto

einSparbuch saldo zinssatz

einGirokonto saldo stichtag plusSparer auszahlen()

einzahlen() getSaldo()

berechneZinsen()

auszahlen() einzahlen()

getSaldo() setStichtag() isPlusSparer()

beide haben die Gemeinsamkeiten eines "Kontos"

(4)

Beispiel Vererbung: Konto

einSparbuch saldo zinssatz

einGirokonto saldo stichtag plusSparer auszahlen()

einzahlen() getSaldo()

berechneZinsen()

auszahlen() einzahlen()

getSaldo() setStichtag() isPlusSparer()

beide haben die Gemeinsamkeiten eines "Kontos"

(5)

www.informatikzentrale.de

Beispiel Vererbung: Konto

UML-Konventionen der Übersichtlichkeit halber nicht eingehalten!

(6)

Beispiel Vererbung: Konto

Oberklasse (Elternklasse;

Basisklasse;

Superklasse)

Unterklasse

(Kindklasse)

(7)

www.informatikzentrale.de

Vererbung in UML

Achtung: In UML wird für Vererbung immer der Pfeil verwendet, bei dem die Spitze ein leeres Dreieck ist!

UML-Konventionen der Übersichtlichkeit halber nicht eingehalten!

(8)

Generalisierung/Spezialisierung

Zwischen Ober- und Unterklasse herrscht Generalisierungs- Spezialisierungs- Beziehung

"spezialisierte" Konto-Klasse

(9)

www.informatikzentrale.de

UML-Übung

Halten Sie die Klassenstruktur in einem Diagramm fest (keine Methoden, keine Attribute)

(10)

Überschreiben

Attribute und Methoden der Unterklassen

überschreiben diejenigen der Oberklassen!

(Ausnahme: Konstruktor)

(11)

www.informatikzentrale.de

Zugriffsmodifikatoren/Sichtbarkeit

UML-Symbol Name Bedeutung

+ public Jede andere Klasse kann auf öffentliche Elemente zugreifen.

# protected Kindklassen der Klasse und Klassen im gleichen Paket können auf geschützte Elemente zugreifen.

~ [paketsichtbar] Klassen im gleichen Paket können auf die Klasse zugreifen (kein Schlüsselwort)

- private Nur die zugehörige Klasse selbst kann auf private Elemente zugreifen.

Definieren die Sichtbarkeit von Klassen, Methoden und Attributen (auch "Sichtbarkeitsmodifizierer").

(12)

Zugriffsmodifikatoren/Sichtbarkeit

Welche Eigenschaften erbt die Amoebe?

(13)

www.informatikzentrale.de

Zugriffsmodifikatoren/Sichtbarkeit

name = public:

Kann von jeder anderen Klasse aus gesehen und benutzt werden.

magenInhalt = private:

Kann nur innerhalb der Klasse Tier gesehen und benutzt werden.

anzahlBeine = protected:

Kann nur von Kindklassen und Klassen des Pakets gesehen und benutzt werden.

(14)

Zugriffsmodifikatoren/Sichtbarkeit

Merke: Je unsichtbarer, desto sicherer!

(Sicherheit bei Entwicklung und Nutzung)

UML-Symbol Name Bedeutung

+ public Jede andere Klasse kann auf öffentliche Elemente zugreifen.

# protected Kindklassen der Klasse und Klassen im gleichen Paket können auf geschützte Elemente zugreifen.

~ [paketsichtbar] Klassen im gleichen Paket können auf die Klasse zugreifen (kein Schlüsselwort)

- private Nur die zugehörige Klasse selbst kann auf private Elemente zugreifen.

(15)

www.informatikzentrale.de

Aufgabe

Erstellen Sie ein Klassendiagramm,

in dem folgende Klassen vertreten sind (Vererbung!):

Mensch Sportler Fußballer Torwart Stürmer

Büroangestellter

Finden Sie jeweils zwei sinnvolle Attribute und

eine sinnvolle Methode! Verwenden Sie Zugriffsmodifikatoren.

Referenzen

ÄHNLICHE DOKUMENTE

Nennen Sie jeweils die Elemente der Klasse Duck welche für die Klasse Mouse im gleichen Paket sowie die Klasse Panzerknacker im Paket entenhausen.gauner

Nennen Sie jeweils die Elemente der Klasse Duck welche für die Klasse Mouse im gleichen Paket sowie die Klasse Panzerknacker im Paket entenhausen.gauner

protected [ abgeleitete Klassen und Klassen im gleichen Paket können zugreifen ] final [ kann nicht mehr geändert (Variable) überschrieben (Methode) oder abgeleitet (Klasse) werden

à Alle Klassen in Java sind (direkte oder indirekte) Kindklassen zur Klasse java.lang.Object. und erben einige

Dem Aufruf super() werden die Parameter für den Konstruktor der Elternklasse übergeben. public class Sohn

[Für den Hinterkopf: Es gibt auch abstrakte Methoden.

Achtung: In UML wird für Vererbung immer der Pfeil verwendet, bei dem die Spitze ein leeres Dreieck ist!.. Generalisierung/Spezialisierung

MouseListener MouseAdapter mouseEntered, mousePressed, mouseReleased, mouseClicked, mouseExited MouseMotionListener MouseMotionAdapter mouseDragged, mouseMoved. MouseWheelListener