Scala provê a capacidade de fornecer parâmetros com valores padrão que podem ser usados para permitir que um usuário possa omitir tais parâmetros se preciso.
Em Java, é comum ver um monte de métodos sobrecarregados que servem apenas para fornecer valores padrão para determinados parâmetros de um método maior. Isso é especialmente verdadeiro com os construtores:
public class HashMap<K,V> {
  public HashMap(Map<? extends K,? extends V> m);
  /** Cria um novo HashMap com a capacidade padrão (16)
    * and loadFactor (0.75)
    */
  public HashMap();
  /** Cria um novo HashMap com um fator de carga padrão (0.75) */
  public HashMap(int initialCapacity);
  public HashMap(int initialCapacity, float loadFactor);
}
Há realmente apenas dois construtores aqui; Um que recebe um map e outro que tem uma capacidade e um fator de carga. O terceiro e o quarto construtores estão lá para permitir que os usuários do HashMap criem instâncias com os valores padrões de fator de carga e capacidade, que provavelmente são bons para a maioria dos casos.
O maior problema é que os valores usados como padrões estão declarados no Javadoc e no código. Manter isso atualizado é complicado, pois pode ser esquecido facilmente. Um abordagem típica nesses casos seria adicionar constantes públicas cujos valores aparecerão no Javadoc: