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

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ธ.ค. 2024

ความคิดเห็น • 16

  • @CodingmitJannick
    @CodingmitJannick  3 ปีที่แล้ว +2

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

  • @datlicht
    @datlicht 11 หลายเดือนก่อน +3

    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 6 หลายเดือนก่อน

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

  • @marcusreinicke
    @marcusreinicke 3 ปีที่แล้ว +15

    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.

    • @CodingmitJannick
      @CodingmitJannick  3 ปีที่แล้ว +5

      Super erklärung :-) danke für die Ergänzung

  • @johnney
    @johnney วันที่ผ่านมา

    Top Video,danke 😊

  • @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 🍀

  • @ItsMe-fj1co
    @ItsMe-fj1co 3 ปีที่แล้ว +6

    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!

  • @floriandraxler3868
    @floriandraxler3868 9 หลายเดือนก่อน +1

    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

  • @EinGitarrist
    @EinGitarrist 6 หลายเดือนก่อน

    Sehr cool erklärt, danke.

  • @mowax74
    @mowax74 7 หลายเดือนก่อน +1

    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).

  • @yvesleys7451
    @yvesleys7451 11 หลายเดือนก่อน

    Top erklärt...