No paradigma orientado a objetos, o polimorfismo está relacionado à herança de métodos. O Java possui duas modalidades de polimorfismo: overriding, que consiste em alterar o método em uma subclasse mantendo-se sua mesma assinatura da superclasse; e overloading, no qual há métodos de mesmo nome associados por meio da herança, porém, com argumentos diferentes.