相关疑难解决方法(0)

如何在ruby中实现抽象类?

我知道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 abstract-class

113
推荐指数
9
解决办法
9万
查看次数

在Ruby中模拟抽象类(Rails)

我想在Ruby on Rails中模拟一个抽象类.即如果有人试图打电话我想提出异常Abstract.new,但他应该可以打电话Child.new(同时Child < Abstract).

这该怎么做?覆盖两者newinitialize不起作用.

ruby ruby-on-rails ruby-on-rails-3

2
推荐指数
2
解决办法
5443
查看次数