C# Od podstaw 03.10 - Polimorfizm

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

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

  • @plrc4593
    @plrc4593 2 ปีที่แล้ว +1

    Hehe, okazało się, że używałem polimorfizmu nawet o tym nie wiedząc :D Nie takie to straszne jak się wydawało :D

  • @themateoo
    @themateoo 3 ปีที่แล้ว

    Na końcu pokazało się "Drawing shape" dlatego, że w pętli zaszło rzutowanie obiektu do góry?

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

      nie tyle co rzutowanie do góry, tylko to wywołanie metody Draw bez słówka kluczowego 'override' nie było już polimorficzne.
      Także w pętli jeżeli iterujemy po obiektach typu Shape, a metoda Draw nie ma nadpisania w klasie dziedziczącej tym właśnie słówkiem override, to po prostu wywołała się ta metoda Draw z klasy Shape

    • @themateoo
      @themateoo 3 ปีที่แล้ว

      @@FullstackDeveloperPL Ok o to mi chodziło, dzięki!

  • @plrc4593
    @plrc4593 2 ปีที่แล้ว

    Uważasz, że lepiej jest jak wszystkie metody są domyślnie wirtualne (jak w Javie), czy jak trzeba je explicite zadeklarować jako wirtualne (jak w C#)?

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  2 ปีที่แล้ว

      lepiej jawnie(explicit) jako wirtualne ;)

    • @plrc4593
      @plrc4593 2 ปีที่แล้ว

      @@FullstackDeveloperPL Czemu?

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  2 ปีที่แล้ว

      @@plrc4593 a jak chciałbyś ustawić że domyślnie wszystkie metody są wirtualne?

    • @plrc4593
      @plrc4593 2 ปีที่แล้ว

      @@FullstackDeveloperPL Tak podobno jest w Javie :P

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  2 ปีที่แล้ว +1

      @@plrc4593 a to w c# jeżeli nie dasz słowa kluczewego virtual to nie był by polimorfizm tylko przesłanianie metod

  • @GildiaMystica
    @GildiaMystica 3 ปีที่แล้ว

    To kiedy lepiej wykonać metodę wirtualną, a kiedy metodę abstrakcyjną?

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

      Zależy od przypadku, jeżeli chcemy wymusić napisanie implementacji w klasach pochodnych to wtedy użyjemy metody abstrakcyjne. A jeżeli tylko niektóre klasy pochodne powinny mieć swoją napisaną impregnację to wtedy użyjemy metody wirtualnej