Inheritance & Polymorphism
Build class hierarchies. Use inheritance, virtual functions, and polymorphism for flexible code.
Lessons
1. Intro
Building class hierarchies
2. What is Inheritance?
Sharing class behavior
3. Base Class and Derived Class
Parent and child relationship
4. Inheritance Syntax
Declaring derived classes
5. What Gets Inherited?
Members passed to derived
6. Quiz: Class extension
Class extension
7. Quiz: Inheritance Basics
Knowledge check
8. Access Specifiers in Inheritance
Inheritance visibility
9. Protected Members
Access from derived classes
10. Quiz: Class extension
Class extension
11. Constructor Inheritance and Calling Base
Initializing base parts
12. Destructor Order in Inheritance
Cleanup from derived to base
13. Quiz: Class extension
Class extension
14. Method Overriding
Replacing base behavior
15. Quiz: Method Overriding
Knowledge check
16. Hiding vs Overriding
Name resolution in inheritance
17. What is Polymorphism?
Runtime type selection
18. Quiz: Class extension
Class extension
19. Virtual Functions
Enabling polymorphic calls
20. The Virtual Keyword
Syntax and rules
21. Quiz: Polymorphism
Polymorphism
22. How Virtual Functions Work
Runtime dispatch mechanism
23. Quiz: Virtual Functions
Knowledge check
24. Pure Virtual Functions
Forcing derived implementation
25. Abstract Classes
Non-instantiable base classes
26. Quiz: Code organization
Code organization
27. Concrete vs Abstract Classes
Can it be instantiated?
28. Interfaces in C++
Pure abstract classes
29. Virtual Destructors
Preventing memory leaks
30. Quiz: Virtual Destructors
Knowledge check
31. Override Keyword
Explicit override declaration
32. Final Keyword
Preventing further overrides
33. Quiz: Class extension
Class extension
34. Multiple Inheritance Basics
Inheriting from multiple bases
35. Diamond Problem
Shared base duplication
36. Quiz: Multiple Inheritance
Knowledge check
37. When to Use Inheritance vs Composition
Design decision guidelines
38. Practice: Animal Hierarchy
Build polymorphic system
39. Quiz: Class extension
Class extension
40. Practice: Shape Interface
Abstract class design
41. Quiz: Inheritance Design
Knowledge check
42. Practice: Virtual Destructor Bug
Fix memory leak
43. Practice: Override vs Final
Experiment with keywords
44. Problem - Force Vectors
OOP force calculation
45. Force Vectors - The Idea
Inheritance benefits
46. Force Vectors - Algorithm
Implementation approach
47. Quiz: Counter-based loop
Counter-based loop
48. Force Vectors - Implementation
Pseudocode solution
49. Lessons from Force Vectors
summary
50. Problem - Team Uniforms
Virtual methods
51. Team Uniforms - The Idea
Polymorphism benefits
52. Team Uniforms - Algorithm
Implementation approach
53. Quiz: Conditional execution
Conditional execution
54. Team Uniforms - Implementation
Pseudocode solution
55. Lessons from Team Uniforms
summary
56. Section Recap
What we learned