14 Jun 21:30
Problem Klassenvariable überschreiben
Winfried Mueller <ToWinni <at> gmx.de>
2002-06-14 19:30:52 GMT
2002-06-14 19:30:52 GMT
Hallo,
ich habe ein Problem mit dem Überschreiben von Klassenvariablen.
Vielleicht hat ja jemand eine Idee, was ich da nicht richtig
sehe. Ich bin bisher davon ausgegangen, das bei einer
abgeleiteten Klasse man eine Klassenvariable überschreiben kann,
die dann nur für diese Klasse gültig ist. Das scheint aber nicht
so zu sein:
-snip
# Test Problematik Klassenvariable überladen
class Vater
@@name = "Heribert"
def Vater.name
return @@name
end
end
class Sohn < Vater
@@name = "Thomas"
end
puts "Vater:" + Vater::name
puts "Sohn :" + Sohn::name
-snip
Dabei sollte eigentlich
Vater: Heribert
(Continue reading)
Dass das ursprüngliche Beispiel bei 1.6.6 überhaupt mit Tricks
zum Laufen gebracht werden kann, bei 1.6.7 aber nicht mehr,
muss man nicht als "weniger" (Funktionalität) interpretieren. Die
beispielsweise von Java bekannten Klassen-Variablen entsprechen
bei Ruby den Klassen-Instanz-Variablen (mit einem @). Die
gewünschte Funktionalität ist also da, es gibt nur ein Problem mit
der Benennung.
Etwas wie die Klassen-Variablen von Ruby (mit @@) gibt es in
Java nicht: Variablen, die nicht nur zu einer Klasse, sondern zu
einer ganzen Klassenhierarchie gehören. Deren Verhalten ist bei
1.6.7 korrigiert worden. Nun spielt es anscheinend keine Rolle
mehr, in welcher Reihenfolge die Klassen-Variablen definiert
werden, so wie es noch bei 1.6.6 der Fall war.
Weniger ist oft mehr.
Gruß,
Wofür braucht man deiner Erfahrung nach Klassen-Variablen, bzw.
was kann man mit Klassen-Variablen machen, was sonst gar nicht
oder nur umständlich möglich wäre?
Gruß,
Pit
RSS Feed