我对此很陌生,我尝试谷歌它,但我似乎无法真正弄清楚它是如何工作的,所以我在这里问这个问题:(......
这其实很简单,我只需要一个语法:
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 中没有抽象类,但如果需要,您可以模拟它们