Einführung in die Verallgemeinerung (upcast) im Rahmen der Lehre der objektorientierten Programmierung. (upcast), Lektion, Seite 721592
http://www.purl.org/stefan_ram/pub/formal_verallgemeinerung_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

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.

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz