C# - Klassenbeziehungen

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    C# - Klassenbeziehungen

    Hallo,

    Ich hab mal eine Frage zu Klassenbeziehungen (in C#) - irgendwie habe ich ein Totales durcheinander.
    Nehmen wir an, die Klasse Manager erbt von der Klasse Mitarbeiter:



    Welcher Code funktioniert nun?
    1) Manager p1 = new Mitarbeiter();
    oder
    2) Mitarbeiter p1 = new Manager();

    Gruss
    sandiro

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Also natürlich macht man grundsätzlich manager p1 = new manager, bzw. mitarbeiter p1 = new mitarbeiter
    Aber es geht darum, was grundsätzlich möglich ist

    Gruss
    sandiro

    Edit: Also mitarbeiter p1 = new manager(); funktioniert, das andere nicht - macht ja eigentlich auch sinn.
    Sry, hatte aber gerade ein totales durcheinander was nun warum geht, und was warum nicht

    Gruss
    sandiro
    Manager erbt von Mitarbeiter, d. h. Manager ist ein Mitarbeiter.
    Wenn Du als Typen die Basisklasse angibst und dann eben eine Unterklasse davon instanziierst, geht das. Heißt Du setzt als Typ Mitarbeiter und instanziierst einen Manager, welcher auch ein Mitarbeiter ist. Das geht folglich.

    Andersrum setzt Du als Typ allerdings die Unterklasse und versuchst, mit der Basisklasse zu instanziieren, was nicht geht, da ein Mitarbeiter per Definition kein Manager ist. Das kann passieren, es können aber auch andere Typen sein, die davon erben. Da müsste man dann also mit Casting hantieren, was aber so natürlich keinen Sinn macht. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
  • 2 Benutzer haben hier geschrieben