В C# обычный класс не может наследовать от статического класса. Аналогичный случай для Ruby выглядит следующим образом:
class Foo
class << self
def test
"this is test"
end
end
end
class Bar < Foo
def test
puts super
end
end
Bar.new.test # >> error
Есть ли способ, чтобы обычный класс Bar
наследовал от Foo
и переопределял test
?
test
то есть в Foo живет на другом уровне. Не экземпляры класса, а сам объект класса. В общем, непонятно, что вы пытаетесь здесь спросить. - person Sergio Tulentsev   schedule 06.03.2019super
, чтобы было напечатано"this is test"
? - person   schedule 06.03.2019test
в Bar так же, как метод singleton. Это сделало быFoo.test
его правильным суперметодом. - person Sergio Tulentsev   schedule 06.03.2019Foo::test
(значение :: означает, что это метод класса, в отличие отFoo#test
, если бы это был метод экземпляра), но нормальный (сокращенный) способ написания —def self.test; ... ; end
(что здесь то же самое какdef Foo.test; ... ; end
). - person Cary Swoveland   schedule 06.03.2019