Untertypen in Java (Untertypen in Java), Lektion, Seite 723212
https://www.purl.org/stefan_ram/pub/untertypen_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Untertypen in Java 

Untertypen

Wenn ein Typ O ein Obertyp eines Typs U ist, so nennen wir U auch einen Untertyp  von O.

Damit ist jeder Typ auch Untertyp seiner selbst.

Wir haben bereits im Grundkurs den Typ »int« als Untertyp des Typs »double« kennengelernt.

Ein Untertyp eines Typs O, der nicht  der Typ O selbst ist, wird echter Untertyp  genannt.

Finden von Untertypen in der Dokumentation

Es ist grundsätzlich jederzeit möglich, zu einem vorhandenen Typ in einem Programm später noch einen weiteren Untertyp anzulegen, ohne daß der Typ dabei verändert werden muß. Daher ist es nicht  möglich, zu einem Typ alle Untertypen anzugeben. Deswegen kann man in der Regel in der Dokumentation nicht alle  Untertypen eines Typs vollständig auflisten, sondern höchsten die dem Autor der Dokumentation zum Zeitpunkt der Niederschrift der Dokumentation bekannten  Untertypen (im Falle der Dokumentation von Java SE  handelt es sich dabei praktisch um alle Untertypen, die es in Java SE  gibt).

Untertypen in der Dokumentation finden Untertypen sind der Typ selber und alles, was unter “Known ” steht.

Außerdem darf man nicht vergessen, daß jeder Typ auch als Untertyp seiner selbst gilt, auch wenn er nicht unter einer All-Known -Überschrift aufgelistet wird.

In der Dokumentation  des Typs »java.io.PrintStream« findet sich derzeit beispielsweise eine Auflistung der bekannten Untertypen unter der Überschrift “Direct Known Subclasses: ”.

Finden von Unter- und Obertypen Bekannte Untertypen  stehen unter “Known ”, alle anderen Typen aus dem obersten Teil der Dokumentation (über der Linie) sind Obertypen.

final-Typen

Ein final-Typ ist in seiner Dokumentation mit »final« (beispielsweise »final class«) gekennzeichnet und hat außer sich selbst keine weiteren Untertypen und kann auch niemals welche erhalten. Daher kann man hier alle Untertypen vollständig angeben: der einzige Untertyp eines final-Typs ist er selber.

Vererbliche und Nicht-vererbliche Aussagen *

Aussagen in der Dokumentation eines Referenztyps gelten im allgemeine auch für alle Untertypen, falls in der Dokumentation des Untertyps nichts anderes festgelegt wird.

In der Dokumentation der Klasse »java.lang.Object« findet man auch eine nicht-vererbliche  Aussage über das Verhalten der Auswertung von »toString()«. Solch eine nicht-vererbliche  Aussage wird mit “for class ” gekennzeichnet, sie gilt dann nur für diese Klasse (“for class ”), auf deren Dokumentationsseite sie steht, selber, aber nicht  notwendigerweise für Untertypen. Solche nicht-vererblichen Aussagen sind aber selten.

Untertypen bei konstruierten Typen ⃗

Wenn »U « ein Untertyp von »O « ist und »T « ein beliebiger generischer Typ, dann folgt daraus nicht, daß der konstruierte Typ »T (U )« auch ein Untertyp des konstruierten Typs »T (O )« ist (außer wenn »U « gleich »O « ist)! Beispielsweise ist ist »java.util.ArrayList<java.lang.String>« kein  Untertyp von »java.util.ArrayList<java.lang.Object>«!

Ist aber der generische Typ »U « ein Untertyp des generischen Typs »O «, dann ist für einen beliebigen Typ »T « der konstruierte Typ »U (T )« ein Untertyp des konstruierten Typs »O (T )«. Beispielsweise ist ist »java.util.ArrayList<java.lang.String>« ein Untertyp von »java.util.AbstractList<java.lang.String>«!

Übungsfragen ⃗

?   Übungsfrage ⃗

Ist »java.lang.Comparable<java.lang.String>« ein Untertyp von »java.lang.Comparable<java.lang.CharSequence>«?

?   Übungsfrage ⃗

Ist »java.lang.Comparable<java.lang.String>« ein Untertyp von »java.lang.Comparable<java.lang.String>«?

?   »java.io.PrintStream« ⃗

Wie viele Untertypen hat der Referenztyp »java.io.PrintStream« mindestens?

?   »java.lang.String« ⃗

Wie viele Untertypen hat der Referenztyp »java.lang.String«?

?   »java.lang.CharSequence« ⃗

Wie viele Untertypen hat der Referenztyp »java.lang.CharSequence« mindestens?

Nennen Sie alle Untertypen von »java.lang.CharSequence«, die Sie in der Dokumentation finden können!

segment /ˈsɛgmənt/

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723212 stefan_ram:723212 Untertypen in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723212, slrprddef723212, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/untertypen_java