在Ruby中,模块(Module)和类(Class)都是用于组织和封装代码的结构,但它们之间有一些关键的区别:
实例化:
继承:
单继承:
方法定义:
module_function方法将其转换为公共方法。命名冲突:
super关键字或者重写方法来解决冲突。super关键字显式调用父类的方法。目的:
下面是一个简单的例子来说明模块和类的区别:
module Greetings
def say_hello
puts "Hello!"
end
end
class Person
include Greetings
def initialize(name)
@name = name
end
def say_name
puts "My name is #{@name}."
end
end
class Robot
include Greetings
def initialize(model)
@model = model
end
def say_model
puts "I am a robot model #{@model}."
end
end
person = Person.new("Alice")
robot = Robot.new("X3")
person.say_hello # 输出 "Hello!"
robot.say_hello # 输出 "Hello!"
person.say_name # 输出 "My name is Alice."
robot.say_model # 输出 "I am a robot model X3."
在这个例子中,Greetings模块定义了一个say_hello方法,Person和Robot类都包含了这个模块,因此它们都可以调用say_hello方法。这展示了模块如何允许不同的类共享相同的方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。