_____ allows a function or operator to perform different tasks depending on the types of the arguments or operands. Group of answer choices Static typing Type declaration Polymorphism Prototyping