But, once you create another method String getName() to "override" the default implementation of name(). I thought that you have to do the same with Regular valueOf() ,i.e., create another method Regular valueOfByName().