Hei Chuck,
that's exactly what i was trying to avoid. While I'm at it, let me be
more specific about my problem, which is actually not just printing out
text to the console but changing the state of the newly created
instance:
class Parent
attr_reader :test_value
def initialize
@test_value = "from parent"
end
end
class Child < Parent
def initialize
p @test_value
end
end
child = Child.new
this should print out "from parent"
--
Andrea Dallera
http://github.com/bolthar/freightrain
http://usingimho.wordpress.com
On Mon, 2010-03-15 at 23:32 +0900, Chuck Remes wrote:
> On Mar 15, 2010, at 9:13 AM, Andrea Dallera wrote:
> > Hi everybody,
> >
> > given the following situation:
> >
> > class Parent
> >
> > def initialize
> > print "magic\n"
> > end
> >
> > end
> >
> > class Child < Parent
> >
> > def initialize
> > print "more magic\n"
> > end
> >
> > end
> >
> > child = Child.new
> >
> > is there a way in which i can get "magic" and "more magic" as the
> > output, without having to add super to the child class's constructor? I
> > was thinking about overriding the class method "new" but i really didn't
> > get anything to work up to now.
>
> Use the #super keyword to call the superclass.
>
>
> class Parent
> def initialize
> print "magic\n"
> end
> end
>
> class Child < Parent
> def initialize
> super
> print "more magic\n"
> end
> end
>
> child = Child.new
>
> ----------
>
> cremes$ ruby a.rb
> magic
> more magic
>
> cr
>
>