überall, wo Objekte einer Basisklasse C erwartet werden, dürfen auch Objekte davon abgeleiteter Klassen D benutzt werden:
class C { .. } ; class D extends C { .. }
C x = new D ();
static void p (C x) { .. } D y = new D (); p (y);