In Ruby you don't have the keyword abstract
to defined abstract classes. If you need to encapsulate functionality that is intended to be shared among different classes, you can extract that into a module, and mix
it in with the classes.
For instance:
module Player
# shared functionality
end
class Human
include Player
end
class Computer
include Player
end
This works well since abstract, as in disassociated from any specific instance, is just construct that can be achieve in many different ways. Different language choose to be more explicit about it, in ruby is more implicit.