相关疑难解决方法(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万
查看次数

为什么我们不需要动态语言中的接口?

是不是因为动态类型我们不需要python中的接口概念(比如Java和C#)?

c# python java dynamic-languages

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

为什么像Ruby和Python这样的动态语言不具有Java或C#等接口的概念?

令我惊讶的是,我对Ruby和Python等动态语言产生了更多的兴趣.声称它们是100%面向对象的,但是当我阅读几个基本概念(如接口,方法重载)时,缺少运算符重载.它是以某种方式内置在封面下还是这些语言不需要它?如果后者是真的,那么他们100%面向对象?

编辑:基于一些答案,我看到Python和Ruby都可以进行重载,Ruby 1.8.6和Python 2.5.2就是这种情况吗?

oop dynamic-languages interface

14
推荐指数
3
解决办法
8820
查看次数

标签 统计

dynamic-languages ×2

abstract-class ×1

c# ×1

interface ×1

java ×1

oop ×1

python ×1

ruby ×1