模块
模块是一种将方法、类和常量封装到单独的命名空间中的方式。 模块提供了两个主要的好处:充当可复用代码的容器,并通过一种称为“mixins”的机制实现多重继承。
module Greetings
def say_hello
puts "Hello!"
end
def say_goodbye
puts "Goodbye!"
end
end
class Person
include Greetings # 使用include关键字将Greetings模块 mixin 以使用其方法
attr_accessor :name
def initialize(name)
@name = name
end
end
# 创建Person类的实例
person = Person.new("John")
# 使用Greetings模块的方法
person.say_hello # => Hello!
person.say_goodbye # => Goodbye!
Person
类使用 include
关键字将 Greetings
模块作为 minxin
包含进来。
模块经常用于在类之间共享功能而不使用传统的继承。它允许你将相关的方法组合在一起并在多个类中包含它们。
代码挑战
创建一个名为
ShapeMixin
的模块,它提供了计算不同形状的面积和周长的方法。 在两个类Rectangle
和Circle
中包含此模块,以强制其实现这些方法。
Loading...
> 此处输出代码运行结果