Abstraction explained with real-life examples and code! - C++ OOP Course

Поделиться
HTML-код
  • Опубликовано: 28 июн 2024
  • 📚 Learn how to solve problems and build projects with these Free E-Books ⬇️
    C++ Lambdas e-book - free download here: bit.ly/freeCppE-Book
    Entire Object-Pascal step-by-step guide - free download here: bit.ly/FreeObjectPascalEbook
    🚀📈💻🔥 My Practical Programming Course: www.codebeautyacademy.com/
    Experience the power of practical learning, gain career-ready skills, and start building real applications!
    This is a step-by-step course designed to take you from beginner to expert in no time!
    💰 Here is a coupon to save 10% on your first payment (CODEBEAUTY_YT10).
    Use it quickly, because it will be available for a limited time.
    Abstraction is one of the most important Object-Oriented Programming principles that confuses many beginners. The idea of abstraction is to show only the most important and essential information while hiding the unimportant and complex details.
    There are many examples of abstraction in real life:
    - When you drive a car, you don't need to know how the internal components of the car work in order to be able to drive it. All of that complexity is hidden behind simple procedures that make the process of driving a car easier.
    The same rule applies in programming. When we make a class that has a lot of functionalities, we can hide the inner details and complex logic related to these functionalities behind a simple interface that will make it easy for other developers to use our class, without having to know how those functionalities are implemented.
    In this video, I'm explaining what is abstraction, how to use it, and its purpose in real-life examples and using C++ code as well.
    🎁 Create Modern Apps, 5x faster, with less code, Download FREE C++Builder Trial: bit.ly/CppBuilderFree
    ☕ If you've found my content helpful and would like to support me, you now have the option to buy me a coffee or a cookie! It's a small gesture of gratitude that means a lot to me and helps me keep creating free educational videos for you. Use the link to make a contribution: bit.ly/CodeBeauty_BuyMeACoffee
    However, please don't feel obligated to do so. I appreciate every one of you, and I will continue to share valuable content with you regardless of whether you choose to support me in this way. Thank you for being part of the Code Beauty community! ❤️😇
    Contents:
    00:00 - Intro
    01:05 - What is Abstraction? (with real-life example)
    06:36 - Let's build a C++ program to show how Abstraction works
    15:11 - The true importance of Abstraction
    Pure virtual functions and Abstract classes video - • Relationship between V...
    Tag me on you Instagram stories:
    Instagram 📸 - / truecodebeauty
    Twitter 🐦- / truecodebeauty
  • НаукаНаука

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

  • @CodeBeauty
    @CodeBeauty  2 года назад +16

    📚 Learn how to solve problems and build projects with these Free E-Books ⬇️
    C++ Lambdas e-book - free download here: bit.ly/freeCppE-Book
    Entire Object-Pascal step-by-step guide - free download here: bit.ly/FreeObjectPascalEbook
    🚀📈💻🔥 My Practical Programming Course: www.codebeautyacademy.com/
    Experience the power of practical learning, gain career-ready skills, and start building real applications!
    This is a step-by-step course designed to take you from beginner to expert in no time!
    💰 Here is a coupon to save 10% on your first payment (CODEBEAUTY_YT10).
    Use it quickly, because it will be available for a limited time.

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

      I have a question..
      @13:14
      Why we did not use /*
      Android* android=new Android();
      */ instead
      or maybe
      /*Android android;
      android.TakeASelfie();
      */

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

      @@astaghfirullahalzimastaghf3648 Because that is the entire point of abstraction. The client code doesn't need to know anything about the child classes (implementations of the interface), not even the names of the child class. You can visualize this as the actual code of the Iphone class methods being implemented in a already compiled library that has simply been shipped to you , and all you've been told is you can get a smartphone from this library by calling a API like [Smartphone *GetSmartphone()]. Then you, as the user (client developer) of library, to take a selfie with a smartphone would simply write :
      Smartphone *s1= GetSmartPhone();
      s1->TakeASelfie();
      If the library now changes to a Android smartphone library, the actual TakeASelfie() method code would now be different since this is now an android smartphone and a different library, but you, the client developer, don't need to change the code one bit! That's the beauty of abstraction.

  • @martonkos5775
    @martonkos5775 3 года назад +76

    As a professional, this is a really good explanation and documentation. I know that how hard it is to teach how to code especially in C++, and you doing it very well!. Keep it up!😁

    • @CodeBeauty
      @CodeBeauty  3 года назад +6

      You're very welcome! Thank you! 🤗🤗🤗

  • @Duknh.programmer
    @Duknh.programmer 8 месяцев назад +8

    She really made me understand the concepts very easily, much better than my college textbooks and teachers.

  • @monstergamingiraq7927
    @monstergamingiraq7927 3 года назад +12

    you the one who made me love coding and success in my college..Thank you..please dont stop

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

    The two unique qualities that attracted me to subscribing to this channel are 1. Real world examples (Saldina you are a unique instructor). 2. GUI programming in c++ (this channel has so far published a few - about 4 videos on c++ gui programming - I found them helpful.

  • @matrixtoogood5601
    @matrixtoogood5601 2 года назад +18

    My takeaways:-
    1. Abstract classes are an abstraction around base classes which can be used to enforce certain functionality in all base classes.
    2. Abstract classes can be instantiated using pointers only and not by creating objects of the abstract class.
    3. Abstract class pointers can point to memory addresses of instances of any of its base class
    4. Pure virtual functions can be used to enforce certain functionality in all base classes of an abstract class.
    5. Pure virtual functions will not have an implementation in the abstract class definitions, but will use a pure specifier (= 0)
    6. Virtual functions can have an implementation in the abstract class (think of it like the default functionality if none of the base classes have an implementation of that function)

  • @ashrafmugalli9510
    @ashrafmugalli9510 3 года назад +5

    Saldina ! you have literally helped me learn c++ in a matter of days! keep it up I'm sure many others are benefitting from this as much as i am!

  • @ZeroCool2211
    @ZeroCool2211 3 года назад +42

    Your teaching skills are actually better than 90% of Udemy teachers.
    Accept my greetings from Palestine.. hopefully you do some tutorials about preprocessor (pragma once, define,...etc)

    • @CodeBeauty
      @CodeBeauty  3 года назад +8

      You're very welcome! Thank you and I'm sending many greetings! 🤗🤗🤗

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

      There is internet in Palestine?

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

      @@psr169 Yes there is

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

      @@ZeroCool2211 lol i thought israel bombed the region of Palestine

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

      @@psr169 lol

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

    As many have stated, you really helped me understand difficult concepts that my past instructors have failed to explain correctly. Thank you so much for taking the time to do these videos, they prevented me from losing my sanity when I was hanging on by a thread. I am going through all of your OOP videos and coding along with you and I am learning so much!

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

    Wow! Amazing instructor! I'm retired with multiple degrees in engineering and statistics but Saldina is one of the best I have seen. It is a great and rare skill to be able to break down complex topics for the learner. Excellent example and presented extremely well.

  • @AshwinKumar-kc7ly
    @AshwinKumar-kc7ly 3 года назад +3

    All the 7 videos on OOP are just amazing - Thanks Saldina! You are great!

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

    This is, hands down, the best tutorial that I've seen that lucidly describes the abstraction standard C++ was invented for. Only thing that in my opinion that would improve this explanation is to briefly mention how the definition of the Android/IPhone classes can be in a completely separate library that the client code only needs to link to and get a pointer to the interface of the object from an exported API without knowing anything about the library code. This would make the process of abstraction completely clear to a newcomer who still may struggle with this example since the implementation of the class methods are inside the same page (translation unit) as the client code that invokes the methods. Seriously, amazing job, and thank you!

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

    After failing 3 technical interviews for embedded sw because I failed to explain the definition of abstraction, I FINALLY can explain what is abstraction and the other 3 pillars. THANK YOU!

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

      I'm glad to hear that! 🥰

  • @marisaloac1456
    @marisaloac1456 3 года назад +3

    Thank you for making these videos. You teach better than my professors and I was stuck on so many concepts before I came across your channel :) was becoming discouraged. Please continue making more c++ videos and ill keep watching :)

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

    I just stumbled upon your channel and wow!! I am so amazed at how you teach the topics at hand. It clicked in way it hasn't before. I love how you simplify the concepts by using relatively easy to understand scenarios like the coffee example.

  • @jiaweiguo3987
    @jiaweiguo3987 3 года назад +4

    You are the best teacher on RUclips good job Saldina
    Greetings from Spain.
    saludos desde España

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

    Amazing - the power of abstraction and your intuitive and clear explanation of it. Thanks!

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

    The complex concept was beautifully explained

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

    i spent like half of the day to understand abstraction and to find a real example of abstraction
    and now here i am
    fully aware of it with the help of such an awesome teacher

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

    Great tutorials, I have watched your Pointers playlist and now am working through the OOP playlist, I am taking a college course on video game development and watch your videos to reinforce what I have learned in my classes. Thanks a lot!

  • @jojo_v5395
    @jojo_v5395 3 года назад +1

    come from virtual fonction and abstract function. So grateful for what you're doing. I would say this is the most outstanding explanation video for abstract functions I've ever seen. this is a good example of using coding as a weapon to help more people. That's my purpose too. So Thank you so much

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

    It's a Very Crystal Clear explanation of Abstract concepts. Thanks so much. Completing each of your sessions is creating by default interest to see your next topics. 🙂

  • @moizsultan5440
    @moizsultan5440 3 года назад

    finally, you answered my requests about making oop videos. thanks a lot saldina i really appreciate it and am looking forward to get more

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

    best abstraction video I got until now

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

    Thank you for the great explanation! I've learned these before, but I actually learn it BETTER from your videos.

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

    The information provided was incredibly enlightening and skillfully delivered. I gained a wealth of knowledge and found your work to be truly motivating. Your efforts in producing such valuable material are greatly appreciated!

  • @DeepakVerma-dq5nw
    @DeepakVerma-dq5nw 2 года назад +1

    Great Example, watched several videos but here all my doubts got clear!!

  • @Ghisisan_
    @Ghisisan_ 3 года назад

    Very good and practical explanation. I had OOP courses during university but this part was always a bit "abstract" for me. I do not do advanced programming on my job - just scripting from time to time. But hey, this now makes sense! Thanks!

  • @LearnEnglishMM
    @LearnEnglishMM 8 месяцев назад +1

    Thank you so much.
    It’s much clearer.

  • @klevismema4998
    @klevismema4998 3 года назад +6

    I don't usually comment but i have to say that you have helped me a lot , thanks to you 🙏

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

      I appreciate you comment very much, and I'm happy to help! 🤗☺️🧡

    • @klevismema4998
      @klevismema4998 3 года назад +1

      @@CodeBeauty in 23 of this month i have an exam in c++ i will use the knowledge thag i got from your vids and practicing

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

    none of youtubers are capable of teaching like you ,wow what a example

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

    After watching a lot of videos about the explanation of this abstraction thing, I finally found one that is understandable , Thank you very much

  • @souvikmukherjee9074
    @souvikmukherjee9074 3 года назад

    Thank you very much for such great content. Your way of teaching is really helpful and a blessing for us. You break down hard topics into simpler understandable chunks. Please make some videos on how to make GUI apps on C++ and a deeper dive into templates... ❤❤❤

  • @malgailany
    @malgailany 3 года назад

    Very clear and informative.
    Thank you!

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

    As a middle software ingineer I can say your tutorials are very useful and helped me to understand oop principles better. You have a new subscriber and good luck in everything you do !

  • @arpitkhandelwal6050
    @arpitkhandelwal6050 3 года назад +1

    i just saw your video OOP using cpp in free code camp channel.. let me tell you , you are amazing. this tutorial was up to the point and very easy to understand. SUBSCRIBED you for more.

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

    Thanks for the video it was really useful. In general, abstraction is about two things: 1- Hide the detail of implementation. 2- Generalize by identifing common essense. here in your example you folllowed these two goals.

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

    Precise and informative, best explanation of Abstraction in C++.

  • @adilkhalid6625
    @adilkhalid6625 3 года назад

    A wonderful and interesting lesson, especially the realistic examples, and I liked it very much ⁦❤️⁩⁦❤️⁩⁦Thank you for your efforts

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

    Extremly Helpful Tutorial . Thank you ❣❣❣❣

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

    Very well explained! Thanks!

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

    Thanks for you Time, and happy ramadan for all Muslims

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

    Happy holidays pretty and a wonderful new year. Excellent video.

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

    Extremely helpful tutorial. Thank You!

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

      you're welcome ☺️😄

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

    Superb!! Your lectures helped me to understand OOP. Break a leg for you

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

    Understood the concept of Abstraction through real world example. Thanks.

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

    Thank you.. You are such a blessing

  • @moaz_king_1001
    @moaz_king_1001 6 месяцев назад +1

    Very well understood thx for the help ❤❤❤❤❤❤

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

    Thank you for this clear explanation of Abstraction!

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

    The way you teach is really interesting and easy to understand, thank you so much for your lessons.
    By the way, could you please make videos to teach about design patterns in C++

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

    That's amazing! ❤️

  • @JawwadHafeez
    @JawwadHafeez Месяц назад

    Thanks .. very detailed and clear explanation. .. really appreciate.

  • @patino555
    @patino555 3 года назад

    Best teacher ever!!! Thanks a lot for your time and for sharing your knowledge, could you recommend some resources for learning winapi implementation in c++.

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

    I got here so far, and I have learned so much in this playlist than I did in college. I thank you so much and you have saved my life. I wanted to ask if you can make a video (How to start a school project) Like I am getting a project from Data structure and they are making us fill in lines in the code between ////todo//// so I am having trouble trying to find out how to know which code to put or how to trace the code or how to troubleshoot or debug. This project is called (Shopping Cart Project) or (Booklist project) If you want me to send you one of a sample, I can send you the project.

  • @ammadamir6597
    @ammadamir6597 6 месяцев назад +1

    What an amazing video, everything is now crystal clear. Thank You🙏👏👏

  • @raminquliyev2268
    @raminquliyev2268 3 года назад +1

    Hi Saldina. Please create a playlist for a full project

  • @legendsyt8334
    @legendsyt8334 3 года назад

    Really Helpful and very very thank you.............

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

    Nice explanation!

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

    Just thank you a million times!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

    Very interesting, thank you very much!

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

    Thank you, you just helped me in college frfr

  • @painsme2
    @painsme2 3 года назад +1

    Thank You!

  • @mkffrtli
    @mkffrtli 3 года назад

    Thank you for this helpful video

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

    abstraction and abstract class are two different things. abstraction is implemented in all classes but not all classes are abstract. Nice presentation.

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

    would you make more videoes regarding other features in oops like overloading ,

    • @CodeBeauty
      @CodeBeauty  3 года назад

      Yep, operator overloading video is here: ruclips.net/video/BnMnozsSPmw/видео.html
      :D :D

  • @midastouchh
    @midastouchh 3 года назад

    Good teaching skills, you make me understand better.... Thanks
    Who else noticed the dark mode ☠️☠️

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

    I like your class very much!

  • @SHIVAMSHUKLA-be7zj
    @SHIVAMSHUKLA-be7zj 2 года назад

    great explanation

  • @a.i.o5573
    @a.i.o5573 3 года назад +6

    I wish you great success, health, love, and happiness
    ♥️♥️♥️♥️🌹🌹🌹🌹

    • @CodeBeauty
      @CodeBeauty  3 года назад +1

      Thank you so much! I wish a the same to you!! ♥️♥️♥️

  • @iot_enthusiast
    @iot_enthusiast 3 года назад +1

    Nicely done!

  • @unrealdevop
    @unrealdevop 5 месяцев назад

    So an abstract class can help ensure that things are following a kind of convention so that actions can be performed in a similar manner across different objects of that type. I suppose this is even more important when working on a project with multiple coders as well as keeping things clean and readable.

  • @nawabkhan9462
    @nawabkhan9462 3 года назад +1

    Madam , you are teaching very well. I am your regular student. Madam, I think now its time come to make some comprehensive gaming code by using c++. I sincerely request to you to make some coding on games or any app development.

  • @deepak-lv4vn
    @deepak-lv4vn 3 года назад

    Hey thanks a lot, this Android example was too good!

  • @PraveenKumar-sr7ob
    @PraveenKumar-sr7ob 2 года назад

    really nice content by you saldeena mam thanks alot

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

    A very good video. Less detailed regarding how different developers can work together, copying all abstract functions for example shown I. E android and iphone in one file is error prone. Maybe headers and libraries for android and iPhone can further enhance this concept.

  • @greywind4728
    @greywind4728 3 года назад +1

    Thanks and wish yu loads of happiness

  • @pedrolobo9835
    @pedrolobo9835 3 года назад +1

    It was the best explanation of abstraction I have ever heard! I have two questions:
    1- Why did you choose dark mode in your IDE this time?
    2- Why didn't you delete the s1 pointer?

    • @mishaerementchouk
      @mishaerementchouk 3 года назад +1

      I guess the dark theme was often requested, otherwise people apparently didn’t trust that this is the real deal. The missed delete however is not a good practice. This should be like the second nature: wrote new, write delete.

  • @jefrycococ9968
    @jefrycococ9968 3 года назад +1

    excellent job thank you

    • @CodeBeauty
      @CodeBeauty  3 года назад

      Thanks for watching! 🤗

  • @adarshmishra8198
    @adarshmishra8198 3 года назад

    Bahut badhiya ..

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

    Great video

  • @loic.S
    @loic.S 3 года назад

    Thanks for your videos. Your English is really good and understandable because you articulate well. However I usually put the translation in French so that it is easier for me and on some videos the option is not activated.

  • @acidrain9924
    @acidrain9924 3 года назад

    Please make a video about abstraction vs encapsulation,

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

    I like how the dark mode syngergizes with your outfit

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

    very helpful

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

    today at first i see your video, just amazing your teaching. move on as a good tutor.

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

    Excellent

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

    Amazing!

  • @aliksargsyan2782
    @aliksargsyan2782 8 месяцев назад

    I suggest you to read OOAD (Object Orineted Analise an Design) by Grady Booch. Abstraction is not for hidding complex components.

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

    what should I do after I finish this playlist? Is it the complete oop course?
    Thank you for everything btw ;)

  • @armo-xorg4804
    @armo-xorg4804 3 года назад

    What is the major you work in in the field of programming and what are the programming languages ​​that you know
    And what is your age
    and I need a plan to learn artifical intelligence with c++

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

    Hi Saldina,
    Could You make the videos in a way, when you explain something for a longer period, like abstraction here, that we do not see visual studio, but we get You full screen. Even though I am watching on laptop, I find my nose almost touching the screen. VS at this point has not been used and is not important, your explanation so far is everything.
    Love your videos and content
    Keep up the excelent work.

  • @coding-Island
    @coding-Island 2 года назад

    Would be awesome and helpful if u used oops concept in real projects...like software mini projects

  • @himanshurajpal7842
    @himanshurajpal7842 3 года назад +4

    Saldina is back🥰🥰🥰I love your way, sister!!

    • @CodeBeauty
      @CodeBeauty  3 года назад +3

      Every Wednesday around this time! 🥰🥰💗💗

    • @himanshurajpal7842
      @himanshurajpal7842 3 года назад +3

      @@CodeBeauty your free code camp video of C++ OOP introduce you to me, from that video, I am big fan of yours, I am also teacher of maths, (teaching simultaneously student) , I learned a lot from your style of teaching, ❤️and I don't wanna miss any video from you... , I assume you as my elder sister , and learn from you ..... ❤️Thankew.. 😉😉😉

    • @CodeBeauty
      @CodeBeauty  3 года назад +1

      @@himanshurajpal7842 Thank you so much. This is a very nice comment and you seem like a very genuine person! 🙏💙

    • @himanshurajpal7842
      @himanshurajpal7842 3 года назад +4

      @@CodeBeauty thankew didi( in India, we call elder sister as "didi" a sign of respect) I also connected you on LinkedIn. I hope my career will be bright under your guidance and I will achieve my aim to get selected in Product based companies under your supervision.❤️😉

  • @hungmai2411
    @hungmai2411 3 года назад

    I want to do more exercise about OOP in c++. Can you give some exercises about this, please? I thank you very much

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

    set your ide theme with your cloths?
    genius and beautiful :)

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

    She is explaining the code, while I'm falling in love.

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

    Datastructure and algorithm video

  • @isaacatia-abugbilla2476
    @isaacatia-abugbilla2476 2 года назад

    Thanks for this. I have a question not related to this but on OOP. When is the keyword "this" used. I see that a lot but can't seem to figure out the importance. Is it equivalent to the "self" keyword used in python? Thanks in advance

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

    more and more tutorial do makes on c++. advance topic like: method overloading, interface, constructor, object, inheritance, encapsulation, data bind, polymorphism etc... please cover this topics.

  • @anujdarji
    @anujdarji 3 года назад

    Topic Recommendation :
    Interview questions and answers in OOP