Concept Flow - Base class pointers
Create Derived object
Assign Derived object address to Base pointer
Use Base pointer to access members
Call functions via Base pointer
If virtual, Derived version runs
If not virtual, Base version runs
A pointer of base class type can hold address of derived class object. Calling functions depends on virtual keyword.