When a virtual function is called by referencing a specific object by name and using the dot member selection
operator (e.g., squareObject.draw()), the reference is resolved at compile time.
In Private -------------- only member functions and friend classes or functions of a derived class can convert
pointer or reference of derived object to that of parent object