class First
def initialize
puts 'in First class'+self.inspect
end
end
class Second < First
def initialize
super
puts 'in second class'+self.inspect
end
end
Second.new
I got result as
in First class#<Second:0xb7f61820>
in second class#<Second:0xb7f61820>
So is #<Second:0xb7f61820> always means from where I call the
def? I did not understand it
Second.new
I got result as
in First class#<Second:0xb7f61820>
in second class#<Second:0xb7f61820>
So is \#<Second:0xb7f61820> always means from where I call the
def? I did not understand it
self is the current object (in this case the object just constructed by new).
The output of inspect does not change depending on where inspect is called
from, nor does the value of self change when you call super.
In other words: if you call self.inspect and self is an object of class
Second, you'll call Second#inspect which, unless overridden, will return
"#<Second:bla>", and if you call Second.new, self will indeed be an object
of class Second.