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.