我对此很新,我试着去谷歌,但我似乎无法弄清楚这是如何运作所以我在这里问这个问题:(...
实际上很简单,我只需要这样的语法:
Class Player <- An abstract super class representing a player object
Classes Human and Computer <- Classes extending the super class Player
Dat's it!它应该是一个简单的,你们可以让我直接将描述翻译成Ruby语法或其他一些例子来帮助我。
另外还有一个问题,对于一个抽象超类来说,定义一个与普通类相同的实例方法?因为正常的课程通常如下:
def Method1(parameters)
blah blah blah;
end
提前谢谢!
答案 0 :(得分:2)
在Ruby中,您没有定义抽象类的关键字abstract
。如果需要封装要在不同类之间共享的功能,可以将其提取到模块中,并mix
将其添加到类中。
例如:
module Player
# shared functionality
end
class Human
include Player
end
class Computer
include Player
end
这很有效,因为抽象,与任何特定实例分离,只是可以通过许多不同方式实现的构造。不同的语言选择更加明确,红宝石更隐含。
答案 1 :(得分:1)
已经有很多问题: How to implement an abstract class in ruby?
简而言之,Ruby中没有抽象类,但如果需要,可以模拟em