Да, BigDecimal реализует новый метод класса, и если вы переопределите его в своем классе test2, вы можете написать свой метод инициализации Test2 любым удобным для вас способом, например,
class Test2 < BigDecimal
def self.new(a)
puts a
end
def initialize(a)
puts a
end
end
Test2.new("a")
Метод класса new - это конструктор объекта, который устанавливает состояние объекта и выделяет память после инициализации объекта с помощью метода initialize.
Но обычно мы не реализуем новый метод, так как это метод конструктора по умолчанию, предоставляемый ruby, хотя его можно переопределить, переопределив его в вашем классе, если для этого есть веская причина, и именно это сделал BigDecimal ,