Wie kombiniert man bei C# die abstrakten klassen mit interfaces?
Moin,
Habe mal eine Verständnisfrage, also in C# haben wir die abstrakten Klassen, die als Basisklassen für die spezifischeren Klassen gedacht sind und dann haben wir noch die Interfaces, die als eine Art Vertrag oder Vorgabe dienen. Meine Frage ist nun, wie würde die Struktur aussehen, wenn man Interfaces und abstrakte Klassen kombinieren möchte. Wie ich es denke würde wäre: Bsp Interface -> IArbeiter -> abstrakte klasse -> Arbeiter -> und dann die spezifischeren klassen
2 Antworten
Von deinem Verständnis davon stimmt alles soweit. Bei deinem Beispiel würde ich allerdings nicht IArbeiter und abstract Arbeiter nutzen. Wendern würde ich Arbeiter als Standartimplementierung von IArbeiter haben allerdings nicht als abstract, da kommt es immer darauf an wofür diese Klassen/das Interface nutzen möchte.
Noch ein Hinweis in der Formulierung:
würde die Struktur aussehen
Klar sind in dem Kontext Klassen gemeint allerdings gibt es in C# auch structs (Strukturen) und ohne Kontext könnten auch die gemeint seien.
Gegenfrage: was ist der Unterschied zwischen abstrakten Klassen und Interfaces?
Falls du keinen größeren Unterschied feststellen solltest, wäre die Frage, warum du ein Interface und eine abstrakte Klasse nutzen möchtest.
Ein bekannter Satz aus dem OOD: "Composition over Inheritance".