Calling child methods in parent


#1

Hi-
This may be a pretty easy question but I’m new to ruby

Say I have a class like this

class MyClass

def myCallingMethod
myMethodToOverrider(“hello”)
end

def myMethodToOverride(string)

end

end

and I want to create a chile method like so

class ChildClass < MyClass
def myMethodToOverride(string)
puts string
end
end

Then I create an instance of my child class

child = ChildClass.new()

then I call myCallingMethod

child.myCallingMethod()

is there anyway to have the method in the parent object call the
overriden
method in the child?

Thanks in advance.


#2

is there anyway to have the method in the parent object call the
overriden
method in the child?

That’s the default behaviour, actually. In C++ terms, all methods
are virtual.

Observe:

class Parent
def say_what
virtual_method(“Hello World”)
end
def virtual_method(str)
“I say: #{str}”
end
end

class Child < Parent
def virtual_method(str)
“My parent says: #{str}”
end
end

william = Parent.new
william.say_what

=> “I say: Hello World”

billy = Child.new
billy.say_what

=> “My parent says: Hello World”

matthew smillie.