martinpriebe
Erfahrenes Mitglied
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 Objekt 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 Basisklasse Foo(byte[] b);
}
public class Ableitung1 : Basisklasse
{
protected override Basisklasse Foo(byte[] b)
{
Ableitung1 ab1 = new Ableitung1 ();
ab1.wert = 5;
return ab1;
}
}
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
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 Objekt 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 Basisklasse Foo(byte[] b);
}
public class Ableitung1 : Basisklasse
{
protected override Basisklasse Foo(byte[] b)
{
Ableitung1 ab1 = new Ableitung1 ();
ab1.wert = 5;
return ab1;
}
}
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