Polymorphism - defines the ability of a single variable of a provided type to be used to reference objects of different types, and automatically call the method that is specific to the type of object the variable references. In short way, polymorphism is a bottom-up method call. The benefit of polymorphism is that it is very simple to add new classes of derived objects without dividing the calling code. That uses the interfaces or polymorphic classes. When you send a message to an object even though you don't know what specific type it is, and the right thing occur, that's called polymorphism. The process used by object-oriented programming languages to implement polymorphism is defined dynamic binding.