Just in case you don't like technical answers...
A way to understand polymorphism would be "A way to make a code interact with various ways of doing the same thing, without knowing how it does it."
Lets say you have a program that prints data. The concept is really broad, so you first start with it reading from a txt file.
You called your class "TxtReader".
After implementing it, you quickly realize that txt is not a great way to save data....
So you decide to use a database.
Now you look at your code, and it is hard-coded to use TxtReader.read().
Changing code that was previously proven to be working is a terrible idea, as it can introduce new problems.
So -
You make an interface called "Reader", and give it one method "read()".
Now you go back to your code, and make TxtReader implement Reader.
And you change the code to Reader.read().
Now you can make any amounts of Reader implementations, such as SqlReader, HtmlReader, PhpReader, etc, as long as it contains the method read().
Now all of those implementations will polymorph to a simple Reader when you want it to.
This allows you to write code without having to worry too much about what implementations there might be.
So we like to use interfaces.
This is a small time saver for a single programmer, but a huge time AND money saver for any kind of project where there is more than one person doing the same job.