Hallo,
ich habe 3 Klassen
Eine Basisklasse und 2 Klassen die davon ableiten.
Nun möchte ich eine Methode erstellen die von beiden Ableitungen überschrieben wird.
Nun möchte ich ein Object erstellen. Ich weiß zwar das es auf jeden Fall vom Typ Basisklasse ist aber nicht genau welche Ableitung.
Ich versuche es mal darzustellen.
public abstract class Basisklasse
{
protected abstract int Foo(byte[] b);
}
public class Ableitung1 : Basisklasse
{
protected override Basisklasse Foo(byte[] b)
{
Ableitung2 ab2 = new Ableitung2 ();
ab2.wert = 5;
return ab2;
}
}
public class Ableitung2 : Basisklasse
{
…
protected override Basisklasse Foo(byte[] b)
{
Ableitung2 ab2 = new Ableitung2 ();
ab2.wert = 5;
return ab2;
}
}
nun möchte ich ein Objekt erzeugen aber ich weiß nicht welches weil ich das byte[] nicht auswerten will.
das soll ja die basisklasse machen.
ich möchte Basisklasse und die abstrakte Methode aufrufen.
Dann soll er in die entsprechende Klasse rein.
Basisklasse class1 = Basisklasse.Foo();
if(class1 is Ableitung1)
…
Alles etwas schematisch.
Nur wie stelle ich das genau an?
Wie kann meine Basiklasse entscheiden welche Methode bzw welche Ableitung sie nimmt?
Oder ist meine Idee schon im Ansatz falsch ?
Was ich nicht möchte ist eben ein
Ableitung1 ab1 = new Ableitung1();
Ableitung2 ab2 = new Ableitung2();
usw.
Sorry wenn ich mich kompliziert ausdrücke.
Danke im vorraus
Martin