Was passiert eigentlich wenn ich Felder in der abgeleiteten Klasse wiederhole?
Die Felder werden verdeckt. Wenn du also z.b. eine Instanz von
TErbe
erstellst und dann Var1 den Wert 42 zuweist, ist
TBasis.Var1
immer noch 0. Da dies eine ziemlich häufige Fehlerquelle ist, würde ich dir davon definitiv abraten (macht auch wirklich selten Sinn). Wenn du die Felder in
TErbe
einfach weglässt, kannst du ja trotzdem auf die vererbten Felder aus
TBasis
zugreifen, auch wenn deine Instanz vom Typ
TErbe
ist.
Delphi-Quellcode:
var
T1: TBaseClass;
T2: TClass2;
begin
..
// Kompiliert
T1.CommonTest;
// Kompiliert auch
T2.CommonTest;
T2.OnlyForClass2;
..
Bezüglich deines Beispiels würde ich dir btw. auf jeden Fall raten nicht direkt von
TObjectList<T>
abzuleiten, sondern eine dedizierte Klasse zu erstellen, welche lediglich ein Feld vom Typ
TObjectList<T>
beinhaltet. So wie in meinem Beispiel weiter oben.