在 Ruby 中设置抽象超类



我对此很陌生,我尝试谷歌它,但我似乎无法真正弄清楚它是如何工作的,所以我在这里问这个问题:(......

这其实很简单,我只需要一个语法:

 Class Player <- An abstract super class representing a player object
 Classes Human and Computer <- Classes extending the super class Player

哒!这应该是一个简单的,你们可以给我一个描述直接翻译成 Ruby 语法或其他一些例子来帮助我。

还有一个问题,以防万一,对于抽象超类,定义实例方法是否与普通类相同?因为正常的类通常是这样的:

def Method1(parameters)
     blah blah blah;
end

提前感谢!

在 Ruby 中,你没有关键字 abstract 来定义抽象类。如果需要封装要在不同类之间共享的功能,则可以将其提取到模块中,并将其与类一起mix

例如:

module Player
  # shared functionality
end
class Human
 include Player
end
class Computer
  include Player
end

这很有效,因为抽象,就像与任何特定实例分离一样,只是可以通过多种不同方式实现的结构。不同的语言选择更明确地描述它,在 ruby 中更隐含。

已经

有很多问题了:如何在 ruby 中实现抽象类?

简而言之,Ruby 中没有抽象类,但如果需要,您可以模拟它们

最新更新