class C {
int x = 2; int p () { return this.x + 3; }
}
C x = new C() ; int y = x.p ();
Überschreiben:
class E extends C {
int p () { return this.x + 4; }
}
C x = // statischer Typ: C
new E() ; // dynamischer Typ: E
int y = x.p ();
Wo ein Objekt der Basisklasse (C) erwartet wird,
kann ein Objekt einer abgeleiteten Klasse (E)
benutzt werden.