public class Polygon {
private Punkt[] punkte; // Liste der Eckpunkte
public Polygon(Punkt[] p) { ... }
public void drehe(double Winkel) { ... }
public double flächeninhalt() { ... }
}
public class Dreieck extends Polygon {
private double radius;
// zwischengespeichert wegen Performance
public Dreieck(Punkt a, Punkt b, Punkt c) { ...}
public Punkt umkreisMittelpunkt() { ... }
}
Polygon p; // nur eine Referenz! Dreieck d = new Dreieck(..); p = d; // p zeigt auf ein Polygon, nämlich d p.drehe(90.0);
Punkt mitte = d.umkreisMittelpunkt();
// !! Fehler:
Punkt mitte2 = p.umkreisMittelpunkt();
// geht nicht, denn ein Polygon hat keine
// Methode umkreisMittelpunkt - auch dann nicht,
// wenn p "in Wirklichkeit" ein Dreieck ist
public Dreieck(Punkt a, Punkt b, Punkt c) {
super( new Punkt[] {a, b, c} );
// erzeugt Array aus a, b, c
}
| Methode | Bedeutung |
|---|---|
| String toString() | gibt einen String aus Klassennamen und Code zurück |
| boolean equals(Object o) | prüft nur auf Gleichheit der Zeiger |