Upcasting and Downcasting in Java - Full Tutorial

Поделиться
HTML-код
  • Опубликовано: 3 окт 2021
  • Learn about Upcasting and Downcasting in Java! Full tutorial with concrete examples.
    In Java, upcasting and downcasting are used along with method overriding to do some really cool things. But what exactly is upcasting, what is downcasting, and how do you use them in your Java programs?
    When can you upcast, and when can you downcast? What do you need to know to use upcasting and dowcasting safely? We'll talk about all of that and more beginner-friendly Java tutorial video.
    Learn or improve your Java by watching it being coded live!
    Hi, I'm John! I'm a Lead Java Software Engineer and I've been in the programming industry for more than a decade. I love sharing what I've learned over the years in a way that's understandable for all levels of Java learners.
    Let me know what else you'd like to see!
    Links to any stuff in this description are affiliate links, so if you buy a product through those links I may earn a small commission.
    📕 THE best book to learn Java, Effective Java by Joshua Bloch
    amzn.to/36AfdUu
    📕 One of my favorite programming books, Clean Code by Robert Martin
    amzn.to/3GTPVhf
    🎧 Or get the audio version of Clean Code for FREE here with an Audible free trial
    www.audibletrial.com/johnclean...
    🖥️Standing desk brand I use for recording (get a code for $30 off through this link!)
    bit.ly/3QPNGko
    📹Phone I use for recording:
    amzn.to/3HepYJu
    🎙️Microphone I use (classy, I know):
    amzn.to/3AYGdbz
    Donate with PayPal (Thank you so much!)
    www.paypal.com/donate/?hosted...
    ☕Complete Java course:
    codingwithjohn.thinkific.com/...
    codingwithjohn.com

Комментарии • 328

  • @arturmelo3681
    @arturmelo3681 8 месяцев назад +17

    the "meow" at 5:05 was the best part of the video, thanks john

  • @callmesej6935
    @callmesej6935 2 года назад +159

    I have my java exam in university in 15 days and I was so stressed about it but watching your videos made it so easy to understand Java. Lots of love to you from Stockholm. :)

    • @samcousins3204
      @samcousins3204 2 года назад

      hvordan var det?

    • @jospherstudies
      @jospherstudies 2 года назад +8

      really? i got my sem exam tommorow and its 9pm now. i just started now btw. people get sick very quickly bruh

    • @callmesej6935
      @callmesej6935 2 года назад

      @@jospherstudies omg good luck.

    • @callmesej6935
      @callmesej6935 2 года назад

      @@samcousins3204 det var inte så dåligt haha

    • @Ali-kg6mv
      @Ali-kg6mv 2 года назад +4

      I have mine tomorrow, and I'm learning more here than I have in class.

  • @Christian-ry3ol
    @Christian-ry3ol 2 года назад +26

    I've been learning java for a few years and NEVER had such a good explanation about this. Thank you John you're saving my degree.

  • @findlestick
    @findlestick 2 года назад +45

    Excellent, clear video. Thanks. 😊
    Also, I liked the characterisation you gave Java… it trusted us “but we betrayed its trust by throwing-in a cat” 😂

    • @mo0ndawg
      @mo0ndawg Год назад +2

      This made me genuinely laugh 😂.
      And at the end of it all, we come to know that good code is does not trust people. Better safe than sorry 🙌🏼

  • @rw4564
    @rw4564 15 дней назад

    this guy always makes subjects easy and fun to learn

  • @renzotorr537
    @renzotorr537 2 года назад +66

    Great video, loving your channel so far! I want to add for new learners: One of the most important uses of upcasting is when you have an ArrayList, List, LinkedList, etc, and you can make it of type Animal while adding all types of animals like Cats, Dogs and whatever

    • @rolay8043
      @rolay8043 2 года назад +1

      yeah and after that you can check for each animal (if you wish) what kind of animals they actually are, to use specific methods

    • @moltony
      @moltony 2 года назад

      TX tjh

    • @smrtfasizmu6161
      @smrtfasizmu6161 2 года назад +6

      Or you can have an array as well. Array of chess pieces for instance. And then every chess piece is actually a pawn, knight, bishop, rook, queen or a king but they are all upcasted as chess pieces in the array.

    • @rickmemmer5625
      @rickmemmer5625 Год назад +1

      Thank you for sharing that. Appreciate it!

  •  2 года назад +2

    Lots of people know Java very well, but only a handful of people know how to pass the knowledge on. Congrats for being one of them!!!

  • @MishaKoroliov
    @MishaKoroliov 2 года назад +2

    I've been searching for a specific answer for over and hour, came over your video and got the answer in less than 5 minute, thank you very much!

  • @SoftwareTestSolutions
    @SoftwareTestSolutions 2 года назад +5

    Loved this again! My 9 years old son is watching you on RUclips and practicing the Java.

    • @lookupverazhou8599
      @lookupverazhou8599 2 года назад

      @Daniel Bunting Having a stable career in 9 years, as well as making hardware do exactly what you want it to do is indeed a fun life.

  • @LuckyMakhado
    @LuckyMakhado 2 года назад

    First time RUclips recommendation worked for me. Came across you video's and haven't stopped watching ever since. Thank you so much, your explanation are unbelievably good and easy to understand.

  • @josephthecreator
    @josephthecreator 2 года назад +3

    HANDS DOWN the absolute best channel I've found regarding Java tutorials and explanations. Thank you John!

  • @aileenchan3741
    @aileenchan3741 Год назад +1

    This video is a life saver for upcasting and downcasting. Thank you!!

  • @natnaelhaftu9283
    @natnaelhaftu9283 3 месяца назад

    i havemore than a couple of videos to understand casting, but i found yours so clear , thanks jo

  • @front-endfatih4030
    @front-endfatih4030 2 года назад

    Love your videos John, you are not bad at explaining topics that I need more clarification on.

  • @KAROMII1
    @KAROMII1 Год назад +5

    for a week i was trying to wrap my head around why we would need to cast objects, this literally lifted a weight off my shoulders thank you!

    • @rickmemmer5625
      @rickmemmer5625 Год назад

      I know the feeling -- and this video just blew that door wide open. What a relief!! :o)

  • @user-rw4lr7pl2o
    @user-rw4lr7pl2o 7 месяцев назад

    The best enjoyable way to learn Java is your lovely channel. I appreciate your efforts.

  • @asaphferreira6448
    @asaphferreira6448 3 месяца назад +1

    Sir, your explanation is amazing. Thank you a lot.

  • @sabari360
    @sabari360 2 года назад

    OMG ! this video made my day , I have been searching for upcast and downcast for a day , none cleared me , but the example in your video told why we have to use this upcast and downcast , caught my mind , thankyou so much , you are an amazing explainer. and I subscribed your channel , keep posting amazing contents.

  • @lr5648
    @lr5648 Год назад +2

    A difficult topic explained in such a simple way. Great video! Thanks bud!

  • @chiranjibdash1843
    @chiranjibdash1843 2 года назад +1

    Thank you so much for explaining these concepts. I'm learning java. I'm new to to your channnel. No one can explain concepts in more simple way other than you. Keep uploading new tutorials.

  • @smrtfasizmu6161
    @smrtfasizmu6161 2 года назад +1

    What a great video! I am reading a book on Java and I didn't understand downcasting, upcasting, instanceof at all until I watched this video. This explanation is so much better than the explanation in my book.

  • @rg_1971
    @rg_1971 7 месяцев назад +1

    Love your videos John, I am using them to supplement the course materials in my intermediate java college course. They are extremely helpful for a 52 year old.

  • @dominiqueradtke1262
    @dominiqueradtke1262 4 месяца назад

    This was so helpful! My professor just randomly assumed that we know what casting is and I didn't quite get the hang of it til this video! Thanks!!

  • @lynnwai152
    @lynnwai152 2 месяца назад

    The best explanation of casting ever. Thanks, John.

  • @sanghamitrabhowmick6674
    @sanghamitrabhowmick6674 Год назад

    It was one of the best explanations about topcasting. Thank you so much for posting!!!

  • @pstlvictoras
    @pstlvictoras 2 года назад

    I love your channel as a java programmer, I have learned a lot of new things. Thanks!

  • @RokayaId-ElMouedden
    @RokayaId-ElMouedden 20 дней назад

    so clear, perfect explanation

  • @manarsalem1685
    @manarsalem1685 25 дней назад

    I still had my doubts about this despite having read my textbook and having attended my university lecture about this two times. I don't normally comment but THANKS A TON for explaining this in just 10 minutes! May God bless you 💞

  • @redblade79x
    @redblade79x 2 года назад

    I’m a relatively new C# programmer and even though this video was explained in Java it made PERFECT sense to me. Great job!

  • @user-xj6uo3mn3i
    @user-xj6uo3mn3i 3 месяца назад

    I love these explanations! Thanks Sir!!!

  • @ihsannuruliman3656
    @ihsannuruliman3656 2 года назад

    Hi John, I really love your videos it really fresh up my mind on things I forget on Java.

  • @bausantodomingo6766
    @bausantodomingo6766 Год назад

    Great video John! The explanation was clear and engaging! Thank you!

  • @khasannishanov5830
    @khasannishanov5830 2 года назад

    thanks for such a clear and positive explanation from Uzbekistan

  • @adityendrapratapsingh4628
    @adityendrapratapsingh4628 2 года назад

    massive respect sir I've been struggling with this but you finally cleared it for me. thank you so much

  • @nasirnesirli5446
    @nasirnesirli5446 2 года назад

    Great explanation! I have finally understood the hardest part of OOP for me. Thank you.

  • @codelibre5651
    @codelibre5651 2 года назад

    Fantastic tutorial - simple and easy to follow (and it works for C#).

  • @ddp1863
    @ddp1863 2 года назад

    Great video John helped me loads thanks

  • @mohamedelmouktafi7557
    @mohamedelmouktafi7557 2 года назад

    Simpliest explaining method i've ever seen , thanks sir keep up 👍

  • @anujtiwari6949
    @anujtiwari6949 4 месяца назад

    Thanks, This concept was very confusing for me but you have explained beautifully.

  • @emreibrahim8504
    @emreibrahim8504 10 месяцев назад

    this video is life saver, nobody on internet explained it this way, whenever i read an article or watch a video about up/down casting they just tell you the syntax which is pretty easy, but i never understood the concept of it, why should i use up/down casting? since i already can call each method from it's own object? but finally i found this video although i'm coming from C# background and i could still understand everything he said. Thumbs up for this man!

  • @hotcupofbeans
    @hotcupofbeans 2 года назад

    These videos are great 👍 love the way you explain things. Thanks!

  • @bokas5
    @bokas5 Год назад

    Exactly what I needed! Thank you :)

  • @matiasmoresi5040
    @matiasmoresi5040 Год назад

    Hey John, thanks for sharing so your knowledge! Loving your channel

  • @dudeiknowman
    @dudeiknowman 11 месяцев назад +1

    Super helpful. Thank you!

  • @Cablur
    @Cablur 10 месяцев назад

    Mate, what a great and fully comprehensive video about this subject on which I smacked my head at the wall the whole day ❤

  • @robert4598
    @robert4598 2 года назад

    What the f... those are the best explanations I've heard so far. That sums up 3 hours of Uni lecture in 10 minutes!

  • @sydneygoeury6102
    @sydneygoeury6102 2 года назад +5

    Man that's quality content here! Thanks for this, I'm a CS major and it helps me a lot in my Java class.

    • @smrtfasizmu6161
      @smrtfasizmu6161 2 года назад +2

      Yes, he made the concept easy to understand while the book that I was reading made this concept unnecessary hard. Someone posted a sequence from their book which "explains" casting in Java and yeah, you can see how bad the "explanation" is. It is more of a description of casting for people who already understand what casting is and who are experienced in Java then it is an explanation aimed at learners who don't already understand casting and who are Java beginners. People who write such books are talented, it is not easy to make such easy concepts hard to understand, but they manage to do it.

  • @amalelayeb874
    @amalelayeb874 2 года назад

    Thank u for your time ❤I really did learn 🥰

  • @vinayakrodd8837
    @vinayakrodd8837 9 месяцев назад

    Thank you John for your explanation on Casting thank you ...

  • @user679jk7
    @user679jk7 Год назад

    What a fantastic explanation!

  • @evangrove599
    @evangrove599 2 года назад

    I was taking this online java course and in it they threw in upcasting and down casting while teaching polymorphism without explaining what this casting is. This was such a great explanation!

  • @spooki6637
    @spooki6637 2 года назад

    GREAT TUTORIAL!!!!!! THANK YOU SO MUCH I LEARNED A LOT FROM THIS CHANNEL.

  • @halilibrahimustun50
    @halilibrahimustun50 2 года назад +1

    You are awesome! I've been searching the answer of this type of code on the internet for a couple of days and even in the stack overflow I couldn't find a satisfactory answer. You made it crystal clear. One more time, Thank you :)

  • @Tuxon24rus
    @Tuxon24rus 2 года назад

    I love that you put extra tips and hints for beginners, let alone explaining naming conventions and providing useful code style notes in your videos.
    I was wondering misconception of what basic concept/topic of Java is more common among Intern/Junior level programmers in your opinion?
    Thank you!

  • @yourlinuxguy
    @yourlinuxguy Год назад

    Really exactly the video that I needed.

  • @user-vg3qn8xt3c
    @user-vg3qn8xt3c 6 месяцев назад

    you explained exactly what I needed! tnx

  • @SoD_Stunning
    @SoD_Stunning 11 месяцев назад

    Damn, it's so clear now. The polymorphism. Thank you, John.

  • @vineethamuralidhar5176
    @vineethamuralidhar5176 2 года назад

    Your explanation is crystal clear!

  • @perox1982
    @perox1982 2 года назад

    I love your channel, is my favorite. This summer hope takes yours Java course asap.

  • @ryvikun4325
    @ryvikun4325 2 месяца назад

    very clear explanation with the right amount of pacing, love it!, great video thanks for helping me understand!

  • @sharmfernando3040
    @sharmfernando3040 7 месяцев назад

    Nicely explained!!
    Thank you

  • @mahmoudalarebi9174
    @mahmoudalarebi9174 11 месяцев назад

    Thanks alot for the Help John

  • @hectorgil3495
    @hectorgil3495 2 года назад

    Thank you , greetings from Costa Rica !

  • @hgatl
    @hgatl 2 года назад

    you made it super simple to understand, thank a lot

  • @aajbakeraajbaker8444
    @aajbakeraajbaker8444 Год назад

    This is a really good explanation, it helped me get through learning this pretty fast.

  • @ronakpatel9109
    @ronakpatel9109 Год назад

    You are awesome, you have cleared my doubt Thank you. ❤

  • @zainabedin9842
    @zainabedin9842 2 года назад

    This video is the best explanation for this topic. Thanks.

  • @jaaeamor7901
    @jaaeamor7901 Год назад

    The instanceof part was soooo cool 🤯

  • @rickmemmer5625
    @rickmemmer5625 Год назад +1

    As top-notch as it gets. Just exceptional work. Thanks a million! :o)

  • @shubhamkotnala6743
    @shubhamkotnala6743 2 года назад

    Goes straight to my brain 👍

  • @savagepeng
    @savagepeng Год назад

    Perfect explanation!

  • @mahzadseyedalikhani9865
    @mahzadseyedalikhani9865 2 года назад

    This vidio survived me from miss understanding. After reading lots of blogs and watch some videos, just your vidio clarified all the concepts and reasons to me🤩

  • @user-sz9nf9lh6q
    @user-sz9nf9lh6q 2 года назад

    This video really helps understand what downcasting and upcasting do! Thnx a lot :D

  • @gabrielfono844
    @gabrielfono844 Год назад

    as new backend engineer, I really enjoy this project
    love from Virginia

  • @beat-fustudio8910
    @beat-fustudio8910 2 года назад

    I try to teach my daughter about upcasting and downcasting for 2 weeks with no avail, And she immediately got it after watching this video, Best explanation !

  • @135_afshashaikh2
    @135_afshashaikh2 Год назад

    Thank you for the explanation.

  • @dmitricherleto8234
    @dmitricherleto8234 2 года назад

    Best java teacher I've ever had.

  • @user-tf6no2wr2u
    @user-tf6no2wr2u Год назад

    Thank you so much, John❤😊

  • @borisvasilev4893
    @borisvasilev4893 Год назад

    Thanks, your videos are incredible! (Comment for the support because of your support!)

  • @ness_cek
    @ness_cek 2 года назад

    This saved mee thank you so much!! Been re-reading the notes given by my lecturers and couldn't wrap my head around it. This video made is so easy to understand!

    • @smrtfasizmu6161
      @smrtfasizmu6161 2 года назад

      I had the same impression when I learned this a couple of months ago. The book that I was reading explained it so poorly and then I watched this video and suddenly I understood upcasting and downcasting while also wondering how could I ever not understand this.

  • @cagla3360
    @cagla3360 Год назад

    Thank you so much John! Learned a lot as always :)

  • @user-lf1dq1py4x
    @user-lf1dq1py4x Год назад

    Excellent explanation!

  • @thomaslesperance6256
    @thomaslesperance6256 Год назад

    This was super helpful.

  • @smrtfasizmu6161
    @smrtfasizmu6161 2 года назад +9

    I remember watching this video a couple of months ago. That was the moment I understood downcasting and upcasting. The book that I was reading explained it so poorly that I wasn't able to understand what was going on, how downcasting and upcasting work. This guy is such a talented teacher, in 10 minutes he perfectly explained a topic which I wasn't able to understand whatsoever.

  • @sonamohialdin3376
    @sonamohialdin3376 Год назад

    Very helpful tutorial thank you

  • @peril7531
    @peril7531 Год назад

    found my uni lecture on this a bit difficult to understand but this video laid it out so clearly!!

  • @irenenash8401
    @irenenash8401 Год назад

    That is really helpful so thank you!😃

  • @Lileminem93
    @Lileminem93 2 года назад

    That really helped, thank you!

  • @MyDisal
    @MyDisal 2 года назад +10

    High quality stuff, I'm learning C# but the underlying concepts are very well taught, even if it's in Java. Thank you!

    • @c.ladimore1237
      @c.ladimore1237 2 года назад +1

      i like c# over java (very different usages), but (don't kill me) javascript over c# for game dev. in unity, even though they dropped it. slower, but easier to write IMO

    • @itzdm0r3
      @itzdm0r3 7 месяцев назад

      They're both OOP languages so a lot of the underlying concepts are the same as other "C" based ones.

  • @felipeiideaustria8696
    @felipeiideaustria8696 Год назад

    Thank u you are saving my tomorrow exam and helping me understand the things my teacher couldnt, ive seen 4 videos in the last hour

  • @inoobbeyt1031
    @inoobbeyt1031 Год назад

    that instanceof operator is new to me nice i learn new thing

  • @liw4972
    @liw4972 10 месяцев назад

    You make everything a piece of cake. Thanks for sharing with us

  • @ahmdkhaled8444
    @ahmdkhaled8444 Год назад

    Man you are heroic thank you so much

  • @gautamanimesh8909
    @gautamanimesh8909 2 года назад

    Thanks for the explanation! Grateful to be a subscriber!💯💯

  • @OkLittleBuddyCalmDown
    @OkLittleBuddyCalmDown 2 года назад

    Your videos are very well done. Thank you.

  • @overspyx44
    @overspyx44 2 года назад

    Great video! Very good and simple explanation!

  • @prajwalbhattjoshi6136
    @prajwalbhattjoshi6136 Год назад +1

    Great knowledge sir thanks you 🙏🙏🙏🙏🙏.

  • @BrunoHenrique-vd1ry
    @BrunoHenrique-vd1ry 10 месяцев назад

    Very nice vídeo! i´m from brazil and you video helped me so much, thanks! :)

  • @ignaciogarcia7210
    @ignaciogarcia7210 2 года назад

    Amazing video! Thanks :)

  • @rajachemali7977
    @rajachemali7977 2 года назад

    Great video as always. Thank you sir!