function overriding
Function Overloading is a feature that happens within the same class and function overriding is a feature that happens within the inheritance chain by using the virtual keyword for that function in the base class. Overriding is evaluated during runtime and Overloading at compile time.