Lernpfad:Objektorientierte Programmierung mit Java/Vererbung: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 20: Zeile 20:
         edge [fontname = "Bitstream Vera Sans";fontsize = 10]
         edge [fontname = "Bitstream Vera Sans";fontsize = 10]


Dreieck [label = "{Dreieck|-position: Punkt\l-richtung: double\l-punktB: Punkt\l-punktC: Punkt\l|+Dreieck(pPosition: Punkt, pPunktB: Punkt\l pPunktC: Punkt, pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getPunktB(): Punkt\l+setPunktB(pPunktB: Punkt)\l+getPunktC(): Punkt\l+setPunktC(pPunktC: Punkt)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX. int, pY: int)\l+drehen(pGrad: double)\l}"]
Dreieck [label = "{Dreieck|-position: Punkt\l-richtung: double\l-punktB: Punkt\l-punktC: Punkt\l|+Dreieck(pPosition: Punkt, pPunktB: Punkt\l pPunktC: Punkt, pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getPunktB(): Punkt\l+setPunktB(pPunktB: Punkt)\l+getPunktC(): Punkt\l+setPunktC(pPunktC: Punkt)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX: int, pY: int)\l+drehen(pGrad: double)\l}"]
Rechteck [label = "{Rechteck|-position: Punkt\l-richtung: double\l-a: int\l-b: int\l|+Dreieck(pPosition: Punkt, pA: int\l pB: int, pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getA(): int\l+setA(pA: int)\l+getB(): int\l+setB(pB: int)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX. int, pY: int)\l+drehen(pGrad: double)\l}"]
Rechteck [label = "{Rechteck|-position: Punkt\l-richtung: double\l-a: int\l-b: int\l|+Rechteck(pPosition: Punkt, pA: int\l pB: int, pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getA(): int\l+setA(pA: int)\l+getB(): int\l+setB(pB: int)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX: int, pY: int)\l+drehen(pGrad: double)\l}"]
Quadrat [label = "{Quadrat|-position: Punkt\l-richtung: double\l-a: int\l|+Dreieck(pPosition: Punkt, pA: int,\l pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getA(): int\l+setA(pA: int)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX. int, pY: int)\l+drehen(pGrad: double)\l}"]
Quadrat [label = "{Quadrat|-position: Punkt\l-richtung: double\l-a: int\l|+Quadrat(pPosition: Punkt, pA: int,\l pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getA(): int\l+setA(pA: int)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX: int, pY: int)\l+drehen(pGrad: double)\l}"]
Punkt [label = "{Punkt|-x: int\l-y : int\l|+Punkt(pX: int, pY: int)\l+getX(): int\l+getY(): int\l+setX(pX: int)\l+setY(pY: int)\l}"]
Punkt [label = "{Punkt|-x: int\l-y : int\l|+Punkt(pX: int, pY: int)\l+getX(): int\l+getY(): int\l+setX(pX: int)\l+setY(pY: int)\l}"]


Zeile 39: Zeile 39:


Das neue Implementierungsdiagramm sieht so aus:
Das neue Implementierungsdiagramm sieht so aus:
[[Datei:UML Vererbung 2.jpg|center]]
<graphviz>
digraph G {
        fontname = "Bitstream Vera Sans"
        fontsize = 10
        rankdir = TB
 
        node [fontname = "Bitstream Vera Sans";fontsize = 10;shape = "record"]
        edge [fontname = "Bitstream Vera Sans";fontsize = 10]
 
Dreieck [label = "{Dreieck|-punktB: Punkt\l-punktC: Punkt\l|+Dreieck(pPosition: Punkt, pPunktB: Punkt\l pPunktC: Punkt, pRichtung: double)\l+getPunktB(): Punkt\l+setPunktB(pPunktB: Punkt)\l+getPunktC(): Punkt\l+setPunktC(pPunktC: Punkt)\l}"]
Rechteck [label = "{Rechteck|-a: int\l-b: int\l|+Rechteck(pPosition: Punkt, pA: int\l pB: int, pRichtung: double)\l+getA(): int\l+setA(pA: int)\l+getB(): int\l+setB(pB: int)\l}"]
Quadrat [label = "{Quadrat||+Quadrat(pPosition: Punkt, pRichtung: double,\lpA: int)\l}"]
Punkt [label = "{Punkt|-x: int\l-y : int\l|+Punkt(pX: int, pY: int)\l+getX(): int\l+getY(): int\l+setX(pX: int)\l+setY(pY: int)\l}"]
Form [label="{Form|-position: Punkt\l-richtung: double|+Form(pPosition: Punkt, pRichtung: double)\l+getPosition(): Punkt\l+setPosition(pPosition: Punkt)\l+getRichtung(): double\l+setRichtung(pRichtung: double)\l+versetzen(pX: int, pY: int)\l+drehen(pGrad: double)\l}"]
 
edge [style="dashed",arrowhead="open"]
Dreieck -> Punkt
Form -> Punkt
 
edge [arrowhead="empty"]
Quadrat -> Rechteck -> Form
Dreieck -> Form
}
</graphviz>


Folgende Anweisungen sind mit Vererbung korrekt, obwohl der Quelltext der Klasse <code>Quadrat</code> die Methode <code>public void versetzen()</code> nirgendwo explizit enthält.
Folgende Anweisungen sind mit Vererbung korrekt, obwohl der Quelltext der Klasse <code>Quadrat</code> die Methode <code>public void versetzen()</code> nirgendwo explizit enthält.

Navigationsmenü