Hallo,

ich befasse mich gerade mit einem Buch �ber VB.NET.
Darin steht:

---
"Das Objekt einer abgeleiteten Klasse ist immer gleichzeitig auch ein Objekt seiner 
Basisklasse.

Diese Aussage hat Konsequenzen. Denn damit kann ein Subklassen-Objekt einer Variablen 
vom Typ der Basisklasse zugewiesen werden:

Dim gc As New GraphicCircle()
Dim meinKreis As Circle()
meinKreis = gc

Der Code wird fehlerfrei kompiliert, weil beide Variablen auf denselben 
Speicherbereich verweisen. Allerdings besteht dabei die Einschr�nkung, dass ein 
GraphicCircle-Objekt dann nur als Circle-Objekt betrachtet wird. Die ein 
GraphicCircle-Objekt kennzeichnenden Methoden, die nicht in der Klasse Circle 
definiert sind, stehen damit auch nicht zur Verf�gung."
---

Beim deklarieren einer Objektvariablen verweist diese dann ja auf einen 
Speicherbereich.
Wenn ich nun die Subklasse "GraphicCircle" sowie die Basisklasse "Circle" deklariere, 
dann werden diese wohl auf zwei getrennte Speicherbereiche verweisen, oder?
Dann verstehe ich nicht, wieso durch

meinKreis = gc

die Einschr�nkung bestehen sollte, dass ein GraphicCircle-Objekt dann nur als 
Circle-Objekt betrachtet wird. Durch diese Operation verweise ich wohl auf den 
Speicherbereich der Subklasse und da m�sste "gc" wohl immer ein "GraphicCircle-Objekt" 
bleiben, oder?

Kann mir da bitte jemand erkl�ren, was zum einen im Speicher beim Deklarieren der 
beiden Klassen wirklich abl�uft und wieso auf einmal ein "GraphicCircle-Objekt" als 
"Circle-Objekt" betrachtet wird?

Dank und Gr��e

Oskar

_______________________________________________
Vb.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/vb.net

Odpovedet emailem