From: Marcos Date: 2009-08-14T23:35:13+09:00 Subject: Class method aliased in superclass bypasses subclass overrides This seems like it should work: class Parent class << self def real_method() "Parent" end alias :fake_method :real_method end end class Child < Parent def real_method() "Child" end end But it doesn't: Child.fake_method # ==> returns "Parent" instead of "Child" If I replace the alias with a real method definition, e.g. def fake_method() real_method end then it works the way I expect (Child.fake_method returns "Child"). So what is it about "alias" that bypasses the override? Do I have to replace my aliases with extra wrapper methods to get the behavior I'm looking for?