我正在使用 Ruby,并使用继承编写类。
例如:
class Canine
def initialize
end
def make_noise
puts "whoosh whoosh"
end
end
class Dog < Canine
def initialize
end
def make_noise
puts "wong wong"
super
end
end
现在我有一个狗对象:
jack = Dog.new
是否可以通过dog
对象调用Canine的make_noise()
方法?
在其他语言中,这将是一个类型转换,类似于:
(Canine)jack.make_noise
请注意,这不是 Ruby 语法,因此是我的问题。
在 Ruby 中可以这样做吗?如果是这样,怎么做到的?
最佳答案
你可以这样做:
Canine.instance_method(:make_noise).bind(jack).call
一个更好的计划是只给父类(super class)中的方法一个别名,或者重命名它。
关于ruby - 在 Ruby 中继承可以进行类型转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239833/