我知道ruby中没有抽象类的概念.但是,如果它需要实施,那该怎么办呢?我试过像......
class A
def self.new
raise 'Doh! You are trying to write Java in Ruby!'
end
end
class B < A
...
...
end
Run Code Online (Sandbox Code Playgroud)
但是当我尝试实例化B时,它会在内部调用A.new哪个会引发异常.
此外,模块无法实例化,但也无法继承.使新方法私有也行不通.有什么指针吗?
我想在Ruby on Rails中模拟一个抽象类.即如果有人试图打电话我想提出异常Abstract.new,但他应该可以打电话Child.new(同时Child < Abstract).
这该怎么做?覆盖两者new并initialize不起作用.