If you only want to define the traversal once on a particular superclass, why not make it a different method that isn’t obscured by subtypes?
class S1
def my_method_S1
puts "S1"
end
def my_method
my_method_S1
end
end
class S11 < S1
def my_method
puts "S11"
my_method_S1
end
end
In general, though, I agree that you should consider whether accessing a particular superclass implementation of an obscured method is really what you want.