Hemos visto que una vez que se asocia un argumento al método initialize no se puede omitir sin que se genere un error. Si queremos ser más considerados podemos utilizar el argumento si se proporciona, y en caso contrario, recurrir al valor por defecto.
ruby> class Fruta ruby| def initialize(k="manzana") ruby| @kind = k ruby| @condition = "madura" ruby| end ruby| end nil ruby> f5 = Fruta.new "pera" una pera madura ruby> f6 = Fruta.new una manzana madura |
A veces es útil tener varias formas de inicializar un objeto. Aunque está fuera del ámbito de este tutorial, Ruby permite reflexión sobre los objetos y listas de argumentos de tamaño variable. Ambas técnicas combinadas permiten realizar sobrecarga de métodos.