Zugriff auf überschriebene Methoden in C#

Hallo,

ich kaue grad an nem Problem, dessen Ursache ich nicht verstehe…
Liegts an C#, hat die CLR nen Bug oder hab ich einfach was übersehen…?

Ich habe folgende Klassenhierarchie

 ------------------
| Basisklasse | (abstrakt)
 ------------------
| Add(object o) | ( public void virtual Add(...) { } )
 ------------------
 ^
 |
 ------------------
| Basisklasse 2 | (abstrakt)
 ------------------
| Add(object o) | ( public void override Add(...) { } )
 ------------------
 ^
 |
 --------------------
| Eigentliche Klasse |
 --------------------
| Add(object o) | ( public void override Add(...) { } )
 --------------------

Im Code:

// Basisklasse 1
public abstract class Base1 {
 public virtual void Add(object o) {
 // nicht implementiert
 }
}

// Basisklasse 2
public abstract class Base2 : Base1 {
 public override void Add(object o) {
 // auch hier nicht implementiert
 }
}

// Eigentlich Klasse
public class myClass : Base2 {
 public override void Add(object o) {
 // Hier befindet sich die Implementierung
 }
}

Im Client siehts folgendermaßen aus:

// Erstellen eines neuen Objektes vom Typ myClass
Base1 obj = new myClass();

// GetType() liefert den richtigen Typ, also "myClass" zurück
Type objType = obj.GetType();

// Und hier das Problem
// obj.Add(...) sollte eigentlich die Add-Methode in myClass ansprechen,
// ruft allerdings die Add-Methode in Base1 auf...
obj.Add(something);

Hab ich irgendwo nen Denkfehler?

Vielen Dank für Ratschläge

Dennis

hi

also ich habs getestet und bei mir wird add von der klasse myClass aufgerufen… ?

gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]