http://www.journaldev.com/12496/oops-concepts-java-object-oriented-programming-concepts
Polymorphisms
Polymorphism is the concept where an object behaves differently in different situations. There are two types of polymorphism – compile time polymorphism and runtime polymorphism.