我是红宝石的新手。一个简单的例子,我需要什么:
class Animal
abstract eat()
class Cat < Animal
eat():
implementation
class Dog < Animal
eat():
implementation
换句话说,所有扩展 Animal 的类都应该需要eat() 方法。
在 JAVA 中我只会使用一个抽象类,但在做了一些研究后我发现很多人不在 Ruby 中使用它,而是推荐使用 mixin / modules。
但是,我不明白,模块是否可以做的不仅仅是包含添加方法。确切地说,模块可以为类设置它们必须实现哪些方法的要求(如果可以,将不胜感激)?
总而言之,在这种情况下,当我想确定所有相同类型的类都有特定的方法并以自己的方式实现它们时,我应该使用什么?