Functions can be overloaded with function overloading. Functions can have the same name but different arguments. Consider the following example of overloading the fun function:
contract Test {
function fun(uint _a) public {
// Do something
}
function fun(uint _b, uint _c) public {
// Do something
}
}