The overloading mechanism should be used in place of optional parameters for several reasons:

Noncompliant Code Example

void Notify(string company, string office = "QJZ") // Noncompliant
{
}

Compliant Solution

void Notify(string company)
{
  Notify(company, "QJZ");
}
void Notify(string company, string office)
{
}

Exceptions

The rule ignores non externally visible methods.