Why is it possible to shadow function names in OpenZeppelin's contracts?

I've been looking at OpenZeppelin's Address.sol contract and found something interesting.

As you can see in the picture,

Both functions have the same name and the first one just calls the second one.

  1. Why is it even possible to shadow function names?
  2. Is there any benefit to having it this way?

Thanks a lot

Function overloading is a perfectly normal thing to do in Solidity; there are lots of reasons for supporting it in a programming language. The EVM distinguishes between the different implementations based on what arguments you have provided.

Oh okay thanks a lot!