 <p>At first glance it may seem as if there should be no reason that one should not be allowed to do this, but however think about it from the perspective of code that must call this(these) method(s), how would it know which method to invoke?</p> <p>From <a href="http://java.sun.com/docs/books/tutorial/java/javaOO/methods.html" rel="nofollow noreferrer">java.sun.com</a></p> <blockquote> <p>The Java programming language supports overloading methods, and Java can distinguish between methods with different method signatures. This means that methods within a class can have the same name if they have different parameter lists (there are some qualifications to this that will be discussed in the lesson titled "Interfaces and Inheritance"). </p> <p><strong>Overloaded methods are differentiated by the number and the type of the arguments passed into the method.</strong> </p> <p>You cannot declare more than one method with the same name and the same number and type of arguments, <strong>because the compiler cannot tell them apar</strong>t.</p> <p>The compiler does not consider return type when differentiating methods, so you cannot declare two methods with the same signature even if they have a different return type. </p> </blockquote>