Nein, nein, die Var1 und Var2 wurden bei Typ2 nur zur Verdeutlichung aufgeführt, dass eine Schnittmenge zum Typ1 besteht; in der wirklichen Deklaration fehlen sie natürlich (siehe auch meine Frage und die
Antwort von Zacherl), da sie ja schon in der Vorfahr-Klasse Typ1 enthalten sind.
Dass meine Konstruktion nicht optimal ist, will ich gern glauben.
Im Moment sieht es so aus:
type Typ1<TObject>
type Typ2 = class(Typ1)
type Liste = TObjectlist<Typ1>
.
Ohne Typecast geht es damit nicht, weil der Compiler meckert, die Liste wär vom Typ1 und die Variable vom Typ2.