Moin,
ich würde das in der Regel als
interface umsetzen, da eine Klasse mehrere Interfaces implementieren, jedoch nur von einer einzigen (abstrakten) Klasse abgeleitet sein kann. Das Verhalten,
welches hier ausgenutzt wird, nennt man übrigens Polymorphie
. Da in C# auch Eigenschaften über Interfaces definiert werden können, gibt es regelmäßig keinen Grund, abstrakte Klassen zu verwenden.
Ich habe da mal was vorbereitet:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| using System;
namespace PolymorphDemo { interface ITier { string Name { get; } }
class Hirsch : ITier { public string Name { get { return nameof(Hirsch); } } }
class Giraffe : ITier { public string Name { get { return nameof(Giraffe); } } }
class Program { static void Main(string[] args) { ITier g = new Giraffe(); ITier h = new Hirsch();
Console.WriteLine(g.Name); Console.WriteLine(h.Name);
Console.ReadLine(); } } } |
Viele Grüße