Neither of these are working solutions. The first because the names "add_one" and "add_two" are not statically known in the real case, but dynamic data from the parent object. The second becase, come on, you can't really expect anyone who wants to override a method in a class to write something corny like that? I can write convoluted stuff in Base, because it's just one class, but Sub must be convenient to write.