Verallgemeinerungen
Alle Objekte, deren Typ eine Untertyp eines Obertyps ist, können auch als Objekte des Obertyps angesehen werden. Diese Möglichkeit ist ganz naheliegend: Ein Luxusauto kann auch als Auto angesehen werden. Jemand, der Gärtner und Sänger ist, ist auch ein Gärtner. Solch eine Person kann man als Gärtner einstellen. Daß sie auch singen kann, spielt dabei gar keine Rolle und kann ignoriert werden. Man kann in solch einer Person nur einen Gärtner sehen und sie als Gärtner behandeln.
Bei einer Verallgemeinerung (Aufwärtsformung, Aufformung, engl.: “upcast ”) interpretiert man ein Objekt eines Untertyps als Objekt eines Obertyps.
Verallgemeinerung.---------------------------------.
| Obertyp |
'---------------------------------' ^
^ | Verallgemeinerung
/_\ |
| |
| |
.---------------------------------. |
| Untertyp |
'---------------------------------'
Als Schreibweise einer Verallgemeinerung wird manchmal der Obertyp, in den verallgemeinert wird, als attributive Gattungsbezeichnung vorangestellt.
Falls z.B. der Cad2 ein Luxusauto ist, dann könnte „Auto Cad2 “ das Cad2, wenn man es nur als Auto sieht, bedeuten. Der Typ von „Cad2 “ ist „Luxusauto“, der Typ von „Auto Cad2 “ ist nur „Auto“.
Verallgemeinerung.---------------------------------.
| Auto |
'---------------------------------' ^
^ | Verallgemeinerung
/_\ |
| |
| |
.---------------------------------. |
| Luxusauto |
'---------------------------------'
Sei Peter ein Gärtner und Sänger: Spricht man vom „Gärtner Peter “, dann meint man damit Peter nur als Gärtner. Der Typ von wurde hier nicht benannt, aber der Typ von „Gärtner Peter “ ist jedenfalls Gärtner.
Eine Verallgemeinerung kann nötig sein, wenn irgendwo nur ein Objekt eines Basistyps akzeptiert oder benötigt wird: Der Pförtner eines Parkhauses könnte darauf achten, daß nur Autos einfahren. Wenn dann ein Luxusauto erscheint, könnte er die Einfahrt zunächst verweigern, da ja nur Autos einfahren dürfen. Wird dann eber durch einer Verallgemeinerung klargestellt, daß das Luxusauto auch eine Auto ist, darf es einfahren.
Im Falle des Pförtners könnte die Verallgemeinerung dadurch geschehen, daß dem Pförtner erklärt wird, daß dieses spezielle Luxusauto auch ein Auto ist. Er könnte das auch noch prüfen und es dann akzeptieren.
Im Falle einer formalen Sprache gibt es oft bestimmte Operatoren, mit denen eine Verallgemeinerung in einen Obertyp beschrieben werden kann.
Manchmal geschieht einer Verallgemeinerung in einer formalen Sprache aber auch stillschweigend, wenn für ein erwartetes Objekt eines Typs ein Objekt eines Untertyps angegeben wird.