Method hiding is a specific instance of name hiding that happens when a derived class defines a member function with the same name as a non-virtual method of the parent class.