Lets sagen, dass ich zwei Klassen haben, die die gleiche Schnittstelle implementiert:Gibt es ein Muster zum Erweitern einer Basisklasse mit Kindern, die eine Schnittstelle implementiert?
public interface IDoSomething
{
void DoSomething();
}
public class Child1
{
private const int CONST1 = 0;
void IDoSomething.DoSomehting()
{ /*Do something the way a Child1 would*/ }
}
public class Child2
{
private const int CONST1 = 0;
void IDoSomething.DoSomehting()
{ /*Do something the way a Child2 would*/ }
}
Was ich will, ist wissen, da beide Klasse verwendet die gleiche Konstante (CONST1
) sollte ich eine neue Klasse so etwas wie zu erstellen:
public class Parent
{
private const int CONST1 = 0;
}
und dann Child1
und Child2
erben von dieser Klasse unter der Annahme, dass die realen Klassen in diesem Szenario größer ist (hat mehr als eine Konstante und mehr als eine Funktion über die Schnittstelle implementiert)?
Sie können die Elternklasse als abstrakt deklarieren und dann die Konstante als geschützt markieren. Dann können Sie die Interface-Methode in der Elternklasse als abstrakt markieren und die untergeordnete Klasse dazu zwingen, sie zu implementieren. – willaien
Sie müssen nicht von einer Klasse erben, um eine Konstante zu verwenden. Sie können auf eine Konstante von einer anderen, nicht verwandten Klasse zugreifen, solange sie öffentlich ist. – Servy
@willaien Ihr Kommentar scheint viel Sinn zu machen – Sebastien