Wie waere es denn, wenn ich noch 2 ueberliegende Objekte brauche, die jeweils die spezifischen Eigenschaften von TZitrone und TErdnuss brauchen:
Delphi-Quellcode:
type
TFood = class
Breite: Integer;
end;
TZitrone = class(TFood)
Saeuerlichkeit: Double;
end;
TErdnuss = class(TFood)
Schale: Boolean;
Geschmack: string;
end;
TSnack = class
private
FInhalt: TArray<TFood>;
public
GegessenVon: string;
property Inhalt: TArray<TFood> read FInhalt write FInhalt;
procedure NulleBreiten; // allg. gueltig fuer TZitrone und TErdnuss
end;
TZitronenSnack = class(TSnack)
private
FInhalt: TArray<TZitrone>;
public
property Inhalt: TArray<TZitrone> read FInhalt write FInhalt;
procedure SauerNullen;
End;
procedure TSnack.NulleBreiten;
var
I: Integer;
begin
for I := low(Inhalt) to high(Inhalt) do
Inhalt[I].Breite := 0;
end;
procedure TZitronenSnack.SauerNullen;
begin
for I := low(Inhalt) to high(Inhalt) do
Inhalt[I].Saeuerlichkeit := 0.0;
end;
Jetzt habe ich
Inhalt
ja sowohl in der Erbenden als auch Vererbenden klasse.
Funktioniert das so, oder waere da eine andere Struktur angebracht?