Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Präzisierung einer Variablen


Allesquarks - Di 20.03.07 14:00
Titel: Präzisierung einer Variablen
Kan man eine Variable oder sonstewas nach der Vererbung präzisieren, aber ohne sie neu einzuführen das soll schon die gleiche bleiben etwa so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
TMyclass1 = class
   feld:array of integer;
end;

TMyclass2 = class (TMyclass1)
   feld:array [1..2of integer;
end;


Ein Zugriff mittels:

Delphi-Quelltext
1:
2:
class2var.feld[1]:=3;
a:=TMyclass1(class2var).feld[1];//soll dann natürlich die 3 liefern


Jakob Schöttl - Di 20.03.07 16:41

Also Methoden kann man als virtual; abstract; (glaub ich) deklarieren, das bedeutet, dass sie erst in den Nachfolger-Klassen implementiert werden, aber bei Variablen geht das nicht, so viel ich weiß.


Ralf Jansen - Di 20.03.07 17:11

Das wär mein Ansatz.

Nimm eine Indexed Property und mach den Getter virtual.
Sieht nach draußen aus wie ein Array du kannst aber die Implementierung im Nachfahren ändern.

Gruß
Ralf