C# OOP - Interfaces (was, wie und wieso?) - Objektorientiertes Programmieren kann so einfach sein!

Поділитися
Вставка
  • Опубліковано 15 вер 2024
  • 🔥 C# Bestseller Bootcamp ➡️ bit.ly/c-sharp...
    In diesem Tutorial erkläre ich dir, was Interfaces in C# sind, wieso sie Teil der objektorientierten Programmierung (OOP) sind und was der unterschied zu Vererbung ist. Neben abstrakten Klassen und Polymorphie gehören Interfaces zu den absoluten top Themen :-)
    Viel Spaß!

КОМЕНТАРІ • 15

  • @CodingmitJannick
    @CodingmitJannick  3 роки тому +2

    🔥C# Bestseller Bootcamp ➡bit.ly/c-sharp-bootcamp

  • @datlicht
    @datlicht 8 місяців тому +2

    Endlich mal jemand, der es so versteht, dass man es versteht. Entwickle zwar schon eine halbe Ewigkeit und steige jetzt auf C# um, aber bislang hat es noch nie einer wirklich verständlich rübergebracht. Übrigens wirkt dein Video auch gut vorbereitet, keine nervigen Füllsätze wie "so, war das jetzt alles?", "ich muss mal kurz schauen... ach nee", ... wie sie leider viele andere Dozenten zu Hauf haben. Gefällt mir.

    • @datlicht
      @datlicht 3 місяці тому

      @@Stani_Badger Na, dan erhell mich doch mal mit deinen Erkenntnissen...

  • @marcusreinicke
    @marcusreinicke 2 роки тому +14

    Hallo Jannick,
    ein schönes Video.
    Leider hast Du elementare Funktionen der Interfaces vergessen und ich denke, dass es wichtig ist, so etwas auch anzusprechen.
    Im großen Ganzen sind Interfaces Verträge. Contracts, die eine einheitliche Struktur an Zugriffsmethoden etc. abbildet.
    Wie Du richtig beschrieben hast, handelt es sich bei Interfaces, also Schnittstellen, um eine Schnittstelle, die von den ableitenden Klassen, nach außen abgebildet wird.
    Die Klassen, können aber noch eigene Properties und/oder Methoden besitzen, die nicht in der Schnittstelle definiert wurden.
    Der Vorteil ist ein ganz mächtiger. Denn auch wenn es sich bei einer Schnittstelle, wie bei abstrakte Klassen, um Typen handelt die sich nicht instanziieren lassen,
    ist es dennoch ein Typ.
    Ein Typ der nach außen immer die gleichen Zugriffe bedient.
    Dadurch ist Dependency Injection erst richtig möglich. Denn durch die Polymorphy ist es möglich, dass alle abgeleiteten Klassen vom selben Typ sind.
    Sie bieten die gleichen Funktionen, was eine Typsicherheit gewährt.
    Ich kann eine Liste durchlaufen, die Typen von IAnimal (List) hält.
    Und es ist gewährleistet, dass ich bei jedem Item die Funktion Move aufrufen kann, obwohl es sich um unterschiedliche Klassen handelt, die aber eine Gemeinsamkeit haben, den einheitlichen Vertrag.
    Durch Polymorphy und DI sind Pattern, wie das Strategie Muster erst möglich.
    Nur zur Ergänzung Deines Vortrages.

  • @freshrafyz6607
    @freshrafyz6607 2 роки тому +1

    Super tolle Videos Jannik! Du kannst das fantastisch erklären. Dein Intensivkurs auf Udemy hat mir echt die Augen geöffnet. Und man bekommt Lust auf eigene Projekte. Habe zwar erst die Hälfte durch aber bin fast schon traurig das er bald wieder vorbei ist. Kann man nur weiterempfehlen 🍀

  • @GordonMarshall2205
    @GordonMarshall2205 3 місяці тому

    Sehr cool erklärt, danke.

  • @ItsMe-fj1co
    @ItsMe-fj1co 3 роки тому +5

    Hammer, bei dir habe ich denke ich verstanden wozu Interfaces gut sind, erklärst das richtig gut. Könntest du evtl passend dazu auch ein Video raus bringen was IEnumerable und Ienumerator sind oder wie diese funktionieren?

    • @CodingmitJannick
      @CodingmitJannick  3 роки тому +3

      Hi :) kommt direkt auf meine Liste, dann gibt es dazu auch Videos!

    • @ItsMe-fj1co
      @ItsMe-fj1co 3 роки тому +1

      @@CodingmitJannick Freu mich da schon sehr drauf.

  • @MarkusEckl
    @MarkusEckl Рік тому +1

    Super Video. Danke für deine tolle und einfache Erklärung!

  • @yvesleys7451
    @yvesleys7451 7 місяців тому

    Top erklärt...

  • @floriandraxler3868
    @floriandraxler3868 6 місяців тому

    Für mich waren Interfaces bis jetzt immer ein warum soll ich den extra aufwand betreiben, aber mit dem Grundgedanken das man dadurch eine art Checklist für eine neu klasse hat um wichtige elemente nicht zu vergessen gibt durch aus sinn

  • @mowax74
    @mowax74 4 місяці тому

    Sehr gut erklärt. Aber das Beispiel ist evtl. noch nicht ganz geeignet um zu erklären warum Interfaces und keine abstrakten Klassen. Für dein Beispiel könntest du auch eher eine abstrakte Klasse "Animals" anlegen, die diese Attribute abstrakt vorgibt zu implementieren, wenn du die abstrakte Klasse vererbst. All deine Beispiele, z.B. Fisch oder Hund, könnten von dieser abstrakten Klasse erben, da sie ja offensichtlich auch Animals sind.
    Aber anders als bei abstrakten Klassen (und deren Vererbungshierarchy) bieten Interfaces die Möglichkeit, diese Bedingungen an komplett unterschiedliche Klassen anzuheften, die nichts miteinander zu tun haben (nicht zur gleichen Vererbungshierarchy gehören).