使对象名不起作用

时间:2015-02-21 18:21:57

标签: ruby

在以下代码中,puts ParentObjectC2无效。我指的是在线教程。

class BaseParentClass
    def method
        100
    end
end

class Child1 < BaseParentClass
    puts "I am child class one , I inherit the properties of BaseParentClass"
    ParentObjectC1=BaseParentClass.new
    puts ParentObjectC1.method
end

class Child2 < BaseParentClass
    puts "I am child two, I also inherit the properties of BaseParentClass"
    ParentObjectC2=BaseParentClass.new
    puts ParentObjectC2
end

我的输出

ragesh@ragesh:~/Ruby/HelloWorld$ ruby classDemo.rb
I am child class one , I inherit the properties of BaseParentClass
100
I am child two, I also inherit the properties of BaseParentClass
#<BaseParentClass:0x00000001423bb8>

1 个答案:

答案 0 :(得分:0)

如果要合理打印,请将to_s方法添加到基类。在第一个子类中,打印方法函数。在第二种情况下,您尝试打印对象本身。

请使用小写的对象名称。大写看起来像一个类

def to_s
 "base #{method}"
end

还有一件事。您可以直接调用该方法。不要创建基础对象并在基础上调用它。这根本不说明继承!

而只是打电话:

puts method