Hi guys. This time I'm writting here for once and for all to verify my definition about Polymorphism. I really think that I understand the concept and I know how to apply it, but you know, still I'm not sure if my conclusion about it is 100% right. So let's take a look:
Polymorphism is the ability of a single interface or object (of a superclass) to take multiple forms.
There are three ways to implement polymorphism (and about these three ways i'm not pretty sure if we can talk about polymorphism):
1- By assigning an object to:
* a reference type that is a superclass of that object.
* an interface type that is implemented by the object
2- By the use of virtual methods what means those methods that are not private, static and final so that they can be overriden and change their behaviour.
3- By the use of "polymorphic parameters" when we have an input parameter that may be both an interface or a superclass so that the method is able to receive an object derived of a subclass or an implementation of the interface.
So please if you think that some of the definitions are not right or that it would be better to add something else go ahead.