Inheritance/Polymorphism in Object Oriented Programming | Python for Beginners | Code with Kylie #10

Поділитися
Вставка
  • Опубліковано 18 вер 2024
  • We are LEVELING UP our object oriented programming. Once you start creating objects in Python using classes, you can step up your OOP game by incorporating inheritance and polymorphism!
    Inheritance is when you can create child classes that inherit attributes and functions from the parent. These are often used when you have a more general overarching class but want to define more specific classes that may be similar but not quite the same. We do this in order to avoid copy-and-pasting a gazillion times.
    In this video, we use dogs as an example of how inheritance can be used. I demonstrate how to create a parent class (superclass) and child class (subclass), and initialize both of them.
    We can also have multiple inheritance, which is when a subclass can have multiple parents and inherits the unique functions and attributes of both of them. An example is a golden doodle!
    Polymorphism is related to inheritance. Polymorphism means taking many forms. In OOP, this is often related to subclasses that override the parent method so that the more specific class might follow a different set of instructions. In my example, I use different barks of different breeds of doggos.
    In practical terms, I've used this in past projects to account for the slight differences in the subclasses. For example, if we are calculating cost of an object, maybe one subclass is set in the US, and another class is specific to France.. we would use the subclass to change from dollars to euros in the France subclass and add an extra layer. We could do this with if-statements, but they might grow repetitive and confusing. Polymorphism is a cleaner way to implement something like this.
    Relevant links for more:
    thepythonguru....
    Inheritance vs polymorphism - www.geeksforge...
    Feel free to leave any questions.
    Please consider subscribing if you liked this video: www.youtube.co...
    Thanks for watching everyone!
    ~~~~~~~~~~~~~~~~~~~~~~~~
    Follow me on Instagram: / kylieyying
    Follow me on Twitter: / kylieyying
    Check out my website: www.kylieying.com

КОМЕНТАРІ • 183

  • @KylieYYing
    @KylieYYing  4 роки тому +24

    Thanks for watching :)
    Some good additional resources if you want to read more!
    thepythonguru.com/python-inheritance-and-polymorphism/
    www.geeksforgeeks.org/difference-between-inheritance-and-polymorphism/
    Follow me on Twitter and Instagram: @kylieyying

    • @MrHorse16
      @MrHorse16 4 роки тому

      Thanks kylie!’ So whats next?

    • @KylieYYing
      @KylieYYing  4 роки тому +9

      Good question.. I have a couple of directions - I want to do more tutorials and stuff, seems like most people want to see those. I also want to start talking about my research, make some videos that are less educational and more just about what you can do with CS. I want to inspire others!

    • @MrHorse16
      @MrHorse16 4 роки тому

      Kylie Ying sounds great! Would love to hear more about your research

    • @simbian4345
      @simbian4345 3 роки тому

      I like it when you say "Arf arf!"

    • @vickkyphogat
      @vickkyphogat 3 роки тому +1

      Even my trainer was not able to make us understand that in 2 days, What you did in approx. 12 minutes.
      You have some serious skills!!
      Best of luck for future!!!! :)

  • @pattyyy8071
    @pattyyy8071 3 роки тому +53

    Who in the world would dislike this video? She is amazing and used doggies for the example.

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

      People who dislike this video are cute dog haters :)

    • @user-em5ep9zw4z
      @user-em5ep9zw4z 3 роки тому +2

      Yeah, I like doggy stuff as well, if you know what I mean)

    • @pattyyy8071
      @pattyyy8071 3 роки тому

      @@user-em5ep9zw4z Now I don’t see it the same way lmao

    • @FrancisCo-xk6rv
      @FrancisCo-xk6rv 3 роки тому +2

      Yeah.She's also cute. I want a programmer gf☺

    • @hozay6552
      @hozay6552 3 роки тому +1

      @@FrancisCo-xk6rv oop

  • @WaldoTheWombat
    @WaldoTheWombat 3 місяці тому +2

    Good job Kylie!
    Note:
    You don't need to cal the parent class's __init__ from the child class's __init__ if the child doesn't introduce any new attributes

  • @DevBranch
    @DevBranch 3 роки тому +30

    I have been through a full stack developer bootcamp, and months of self-study. After watching this video, I finally feel like I REALLY understand Inheritance and Polymorphism. Great examples! Thank you!

  • @laurenm1696
    @laurenm1696 3 роки тому +13

    This video was EXACTLY what I was looking for when trying to practice these concepts. Thank you so much

  • @ankitabasu81
    @ankitabasu81 3 роки тому +5

    Best Example I have ever come across and I wish everybody to use Doggo examples 💖

  • @andrewyoung222
    @andrewyoung222 Рік тому +3

    Clear, concise, pacey video and so helpful on these core concepts of OOP - deserves MANY more views! Thank you!

  • @humdrumsnail1036
    @humdrumsnail1036 9 місяців тому +1

    I found Polymorphism a difficult concept to understand but after watching this video, I understood it perfectly well. Thnx for uploading great free content

  • @KeithGalli
    @KeithGalli 4 роки тому +8

    Nice!

    • @Me-id3uy
      @Me-id3uy 3 роки тому

      hey man
      you also having doupt in opps ............ omg💥💣
      i am one of your subscriber and fan of your coding skills 😍

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

    whoaa. ur so good at explaining everything in just a span of minutes. thank u so much. more videos like this, please

  • @spianny
    @spianny Рік тому +3

    I’m learning abit of python everyday and I’m really loving your videos! Super easy to understand and well explained!!
    Thank you soo much!! 🙏

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

    It's the third time that I come back to this video to brush up on my knowledge of Python inheritance! Thanks for this amazing video.

  • @oluwalekeoyedeji444
    @oluwalekeoyedeji444 3 роки тому

    Was looking for someone who could explain this in a simple way, and found you after multiple trials of other sources. You just won a student, and I consider myself the privileged one here. Thanks a bunch.

  • @christophejan5587
    @christophejan5587 2 роки тому

    very clear video that allowed an old French man like me to finally understand polymorphism . Merci !

  • @ggg9gg
    @ggg9gg 2 роки тому

    OMG this is like the best video in explaining inheritance and polymorphism. So basically for inheritance you just include the name of parent class in the bracket of the subclass, then for polymorphism is just the idea of defining a method that's already present in the parent class but with different content.

  • @emmanueldel2891
    @emmanueldel2891 5 місяців тому

    I was confused between the two but now I know the difference, thanks!

  • @tecolote8566
    @tecolote8566 4 місяці тому +1

    SUPER NICE KYLIE!!

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

    Thank you so much, you explained this in a super easy to understand way!

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

    Great work Kylie. Your Python series is well explained and the examples you use make your videos more interesting.

  • @Jeefffツ
    @Jeefffツ Рік тому

    Thanks for sharing the knowledge. It will now be a stepping stone for me. thanks a lot once again

  • @rachellai1164
    @rachellai1164 3 роки тому +1

    This video is exactly what I was looking for! You explain the concepts so clearly and using doggos really helps me to understand 🤣 thank you!

  • @GabrielMamuttee
    @GabrielMamuttee 3 роки тому +1

    The best explanation I've got on these subjects

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

    This is a fantastic video with a very simple and straight forward example - keep up the good work!

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

    Thank you Kylie for such clear explaination using cute examples :)

  • @rev.dr.metalmatt6827
    @rev.dr.metalmatt6827 3 роки тому +1

    Great video, thank you so much! I was completely tripped up on the connection between a sub __init__ and super().__init__ and it makes complete sense now. Also I love the dog examples!

  • @adamsnith-kq2gy
    @adamsnith-kq2gy Рік тому

    I wish all programming videos on UA-cam were this quality

  • @kadimiprasad6517
    @kadimiprasad6517 2 роки тому

    Thanks Kylie I am really enjoying your pet programming

  • @Zetroza
    @Zetroza 3 роки тому +1

    print("Thank you. You made it very clear with examples and I now understand the concept.")

  • @felipemurta9160
    @felipemurta9160 Рік тому

    damnn this video was 100x better than I had thought it would be. Deserved a like for sure. Thanks!

  • @wendyliu9808
    @wendyliu9808 2 роки тому

    Thank you so much! Kylie!!! your examples on dog are wonderful!!

  • @jakesteffan1581
    @jakesteffan1581 2 роки тому

    THANK YOU. Like the tone and pace of your voice. Easy to digest. Very precise and succinct as well. Subbed. ✌️

  • @tee9166
    @tee9166 2 роки тому

    thanks queen love the dog examples

  • @jimiwhizz
    @jimiwhizz 3 роки тому

    Your explanation of each of these topics was extremely clear and easy to understand! Excellent work. Also love the doggos

  • @jonesbts6393
    @jonesbts6393 3 роки тому +1

    I really like how you explained everything... keep up the great work, and keep teaching! I like your format quite a lot. :)

  • @ГеоргиосСемерджиев

    best tutorial, loved the doggo examples thnx

  • @user-oe5qv4gs4t
    @user-oe5qv4gs4t 2 роки тому

    You explain wonderfully! Thanks!

  • @FitnessChaos
    @FitnessChaos 2 роки тому

    Multiple videos watched on this topic and still couldn't understand because of all the jargon they used. Good video and thanks

  • @Balkac
    @Balkac 3 роки тому

    Most simple explanation of Polymorfism I've seen so far :) Better than with build in dunder method usual examples.

    • @KylieYYing
      @KylieYYing  3 роки тому

      Glad it helped! Actually I gave a bad example I think. Usually when a child class has two parent classes, you dont want the "grandparent" class to be the same. Probably shouldve made a "Pet" class or something

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

    Best example!! Thank you!

  • @Twenti2
    @Twenti2 3 роки тому

    These were awesome watched all within a few days!

  • @anandib5401
    @anandib5401 3 роки тому

    I like her cute little ponytail!!

  • @jjjjjkkkkk
    @jjjjjkkkkk 2 роки тому

    Kylie, these videos are so good. They have really helped me a lot.

  • @entity5678
    @entity5678 Рік тому

    Very good explanation..keep it up

  • @garagemusic9721
    @garagemusic9721 3 роки тому

    Excellent use of simple examples to explain inheritance and polymorphism :)

  • @Akshayaak2
    @Akshayaak2 2 роки тому

    Thankyou so much kylie.. ❤🧚‍♀️for the wonderful explanation

  • @bhaithrinley9602
    @bhaithrinley9602 2 роки тому

    So much clear explanation...
    We expect more videos like this...

  • @teacherinthailan6441
    @teacherinthailan6441 3 роки тому

    Awesome lesson! Very clearly explained. Thank you so much!

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

    Thank you for your great tutorial video... Please create more python tutorials for beginner...

  • @saudijaz5678
    @saudijaz5678 3 роки тому

    keep uploading more videos.absolutely amazing.keep up the good work

  • @Honest_Reply900
    @Honest_Reply900 2 роки тому

    Amazing , glad that I found it . Good job and thank you

  • @slyparranini7639
    @slyparranini7639 3 роки тому

    Thanks very much, explained much better than my uni!

  • @chachacharisse
    @chachacharisse 3 роки тому

    Seeing the word 'doggo' used in your variable name made me scroll down from the video just to hit the like button. Also, thanks for explaining the concepts clearly!

  • @felipesanchez4097
    @felipesanchez4097 2 роки тому

    Great video.

  • @cheveux9718
    @cheveux9718 2 роки тому

    thankyou so much kylie

  • @godswillspio7430
    @godswillspio7430 2 місяці тому

    Thanks love this was really helpful

  • @sieroalf7675
    @sieroalf7675 2 роки тому

    Kylie you're super amazing 💪😊

  • @1grace
    @1grace 3 роки тому

    thank you so much! much easier to understand than my prof

  • @fawwaz25
    @fawwaz25 3 роки тому

    Thank you, you are really good at explaining and your examples are super helpful!!

  • @Seulementmoietlalune
    @Seulementmoietlalune 2 роки тому

    This was so cute. I love it. In my class, we kept using cats but I'm a dog person. lol

  • @nguyentuan6108
    @nguyentuan6108 3 роки тому

    You deserve a credit for those amazing videos :D Thanks so much

  • @ricj9594
    @ricj9594 3 роки тому

    Thank you Mulan!

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

    This video was execellent

  • @eduardorosales7225
    @eduardorosales7225 3 роки тому

    Thanks for your excellent explanation!

  • @nishkarshdubb2204
    @nishkarshdubb2204 3 роки тому

    Thank you for this great video! Helped me a lot.

  • @elenaperez6327
    @elenaperez6327 3 роки тому +1

    Thanks for the video, you explained it really well. I am trying to get my head around OOP, this sure did help. The only issue I can say is that you didn't mention a pug 🤣😝

  • @pythonholic
    @pythonholic 2 роки тому

    Thank you so much ♥️♥️♥️♥️ you're the best

  • @xzex2609
    @xzex2609 Рік тому

    I really like your teaching although it took me twenty years of teaching to understand that not all students are as smart as you think and see the world, I mean other videos, they are great, really is helping me , but the first time I was not ready and somehow intimidated , and there is nothing in the world for me that I can't understand so I learned more and get back and we squerd

  • @klipkon1941
    @klipkon1941 2 роки тому

    Thank you so much!!

  • @breamgarces4680
    @breamgarces4680 2 роки тому

    that was clear!

  • @c.221
    @c.221 2 роки тому

    Very late comment but this video is absolutely amazing. Concise explanation given in an easy to digest manner. Thank you very much.

  • @markcampos7959
    @markcampos7959 3 роки тому

    Thank you!

  • @shashankkamath2171
    @shashankkamath2171 3 роки тому

    Wonderful explanation!

  • @chastippett
    @chastippett 3 роки тому

    great video Kylie - so helpful

  • @matheusosa
    @matheusosa 2 роки тому

    How can I like this video more than one time?🧠

  • @saqibmalik6589
    @saqibmalik6589 2 роки тому

    will you make more videos? I am eagerly waiting. You are so articulate and very good speaker with clarity in voice.

  • @salomepantsulaya5515
    @salomepantsulaya5515 2 роки тому

    thank you sooo soo much! you explain it so easily and in an interesting way.

  • @thegangmovies4317
    @thegangmovies4317 9 місяців тому +1

    Love you ❤

  • @felipe_ai
    @felipe_ai 3 роки тому

    Seriously, best explanation ever :)

  • @saeidgholami2795
    @saeidgholami2795 3 роки тому

    10 out of 10

  • @jacksondasilvafilho9319
    @jacksondasilvafilho9319 3 роки тому

    Wow! Thank you very much! That was a mater class @Kylie Ying

  • @KeepLearing
    @KeepLearing 3 роки тому +1

    Omg! Watching make sense in seconds where if I'd just continue reading it on code cademy then it'll take 5x longer and even that I'd probably would still be confused 😅

    • @dominiczhai
      @dominiczhai 3 роки тому

      same lol

    • @dominiczhai
      @dominiczhai 3 роки тому

      code academy's written explanation was garbage

  • @dlwlrmae
    @dlwlrmae 3 роки тому

    you saved me! thank you so much 💓

  • @dominiczhai
    @dominiczhai 3 роки тому

    Thanks for the vid Kylie!

  • @luansouzasilva31
    @luansouzasilva31 3 роки тому

    Thank you

  • @jpkeys6000
    @jpkeys6000 2 роки тому

    Subscribed!

  • @Klaushennequin
    @Klaushennequin 3 роки тому

    Amazing. It really helps

  • @processorbot8761
    @processorbot8761 4 роки тому

    thank you i really needed a refresh

  • @xx482
    @xx482 2 роки тому

    Woof woof i like this tutorial ........................

  • @nrprogramming7593
    @nrprogramming7593 4 роки тому +1

    Nice content!

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

    Hi Kylie, great videos!
    I just had a question:
    in the parent class, this line is def __init__(self, name, age, friendliness)
    but when we call the parent class in the child class, it's super().__init__(name, age, friendliness).
    Is there a reason that there's no 'self' in the child class line as there is in the equivalent parent class line? Or is that just the way that it has to be written to work? Thanks!

    • @buscapee
      @buscapee 3 роки тому +1

      You only need the self for initializing the class. And that was already done on the init method. The super is just for calling the previous definitions from the parent class

    • @edmondchan4438
      @edmondchan4438 3 роки тому

      @@buscapee ah thanks very much Mané!

  • @md.mahbubanamtanim9081
    @md.mahbubanamtanim9081 10 місяців тому

    How cool is that.!!?
    NO, mam.... I would rather say, "How cool your explanation is!!".

  • @robinsonzapata1
    @robinsonzapata1 3 роки тому

    Great tutorial!

  • @KarlKatten
    @KarlKatten 3 роки тому

    great video, thank you!

  • @jitendersingh-ju8bz
    @jitendersingh-ju8bz Рік тому

    you are gret, Appreciate that but
    please discuss the difference b/n function and Class in brief.....

  • @xenofeild983
    @xenofeild983 2 роки тому

    Sorry if this is a bit of a dumb question; is it possible to inherit some information but not all? let’s say the Poodle has shed_value = 0 but the Golden Retriever has a shed_value = 5.
    is there a way to make the Golden doodle class to inherit JUST the 0 value or the 5?

  • @matlepak9694
    @matlepak9694 4 дні тому

    you didn't need to copy the def __init__ for all child classes right? Inheritance sorts that out if you don't re-define it no? Or was there something in the super() that made it different?
    I'm brand new to python btw

  • @omarkalom1962
    @omarkalom1962 4 роки тому +2

    Thanks Kylie. 7:17 The super() in GoldenDoodle refers to which parent class?

    • @KylieYYing
      @KylieYYing  4 роки тому +4

      All of them! Check this out :')
      class Parent:
      def __init__(self):
      print('Init parent')
      class Child1(Parent):
      def __init__(self):
      super().__init__()
      print('Init child1')
      class Child2(Parent):
      def __init__(self):
      super().__init__()
      print('Init child2')
      class GrandChild(Child1, Child2):
      def __init__(self):
      super().__init__()
      print('Init grandchild')
      GrandChild()
      This prints:
      "Init parent
      Init child2
      Init child1
      Init grandchild"

  • @cetilly
    @cetilly 3 роки тому

    @Kylie Ying Why not make "Dog" an abstract class?

  • @keoz-4125
    @keoz-4125 2 роки тому

    Thanks for great explanation. U deserve more subs :D

  • @xfadl
    @xfadl 3 роки тому

    说得真不错