Dein Ansatz ist schon falsch.
Man würde Konto nie von Bank ableiten. Eine Ableitung ist quasi eine Spezialisierung.
Delphi-Quellcode:
TFahrzeug = class
TAuto = class(TFahrzeug)
TLKW = class(TFahrzeug)
TMotorrad = class(TFahrzeug)
Autos, LKWs und Motorräder sind spezielle Arten von Fahrzeugen.
Sie unterscheiden sich zwar, aber es sind im Grunde alles Fahrzeuge (daher die Ableitung von TFahrzeug).
Bei Bank und Konto funktioniert das nicht. Ein Konto ist etwas anderes als eine Bank.
Ein Konto ist keine spezielle Art von Bank sondern etwas anderes (wenn auch TEIL einer Bank).
Was du tun würdest wäre eine Klasse TBank und eine Klasse TKonto (NICHT von TBank ableiten).
TBank fügst du eine Liste von TKonto hinzu und Methoden zum Verwalten dieser Liste - z.B. "procedure KontoHinzufuegen(AKontoNr: Integer; ABesitzer: TPerson)"
Delphi-Quellcode:
TKonto = class
private
FKontoNr: Integer;
FKontostand: Currency;
FBesitzer: String;
public
property Besitzer: String read FBesitzer write FBesitzer;
property KontoNr: Integer read FKontoNr write FKontoNr;
property Kontostand: Currency read FKontostand write FKontostand;
end;
TBank = class
private
FKonten: TObjectList<TKonto>; // Im constructor erstellen.
public
property Konten[Index: Integer]: TKonto read GetKonto; // Result := FKonten[Index];
property KontoCount: Integer read GetKontoCount; // Result := FKonten.Count;
procedure AddKonto(AKontoNr: Integer; ABesitzer: String); // Konto-Objekt erstellen, Eigenschaften zuweisen und der Liste hinzufügen.
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."