In Java you can overload constructors:
public Person(String name) { this.name = name; } public Person(String firstName, String lastName) { this(firstNam
checkout functional-ruby gem which is inspired by Elixir pattern matching features.
class Person include Functional::PatternMatching defn(:initialize, String) { |name| @name = name } defn(:initialize, String, String) {|first_name, last_name| @name = first_name + ' ' + last_name } end