【发布时间】:2013-06-03 15:12:33
【问题描述】:
我很高兴知道为什么下面的"Cat" 实例没有将"This animal can:" 文本放在其特定实例属性之前。我期待这样的输出:
This animal can:
Say it's name: 'Rover'
Bark
This animal can:
Say its name: 'Satan'
Meow
代码如下:
class Animal
puts "This animal can:"
end
class Dog < Animal
def initialize(name)
@name = name
puts "Say its @name: '%s'" % [name]
end
def bark
puts "Bark"
end
end
class Cat < Animal
def initialize(name)
@name = name
puts "Say its @name: '%s'" % [name]
end
def meow
puts "Meow"
end
end
rover = Dog.new("Rover").bark
satan = Cat.new("Satan").meow
我看到的是这样的:
This animal can:
Say it's name: 'Rover'
Bark
Say its name: 'Satan'
Meow
"cat" 不是也继承自 Animal 类吗?它的输出不应该也以"This animal can:"开头吗?
【问题讨论】:
-
理想情况下,两者都不会打印 puts "This animal can:"。这是你的完整代码吗?您使用哪个版本的 ruby?
-
是的,这是我的完整代码(练习来自 Learn Ruby the Hard Way)。不幸的是,我只使用 Ruby 1.8.7(愚蠢的工作)。
-
您的工作是否允许您安装到您的主目录?试用 RVM 来安装独立的 rubies。 rvm.io
标签: ruby class inheritance