ruby - создание и инициализация класса (инициализация не вызывается?) - PullRequest
1 голос
/ 27 августа 2011
class Test

  def initialize 
    puts 'initializing test'
  end

end

class TestB < Test

end

something = Class.new(Test)

В приведенном выше метод инициализации суперкласса не вызывается.Если я делаю

something = TestB.new

, это называется.

Почему?

1 Ответ

7 голосов
/ 27 августа 2011

При чтении документации Class.new (Test) выдает объект производного класса, в качестве суперкласса которого используется Test.

Вам необходимо вызвать new для этого результата, чтобы получить распечатку.

TestA = Class.new(Test)
something_else = TestA.new
...