<p>In terms of Java, when someone asks: </p>

<blockquote>
  <p>what is polymorphism?</p>
</blockquote>

<p>Would <strong>overloading</strong> or <strong>overriding</strong> be an acceptable answer?</p>

<p>I think there is a bit more to it than that. </p>

<p><em>IF you had a abstract base class that defined a method with no implementation, and you defined that method in the sub class, is that still overridding?</em></p>

<p>I think <strong>overloading</strong> is not the right answer for sure.</p>

The term overloading refers to having multiple versions of something with the same name, usually methods with different parameter lists
```
```
public int DoSomething(int objectId) { ... }
public int DoSomething(string objectName) { ... }
```
```
So these functions might do the same thing but you have the option to call it with an ID, or a name.  Has nothing to do with inheritance, abstract classes, etc.
Overriding usually refers to polymorphism, as you described in your question