Ad-hoc polymorphism allows functions to be defined with different behaviors for different types. This can be achieved through function overloading or operator overloading.
Code
Java
public class Solution {
public void print(int a) {
System.out.println("Printing int: " + a);
}
public void print(String a) {
System.out.println("Printing String: " + a);
}
public static void main(String[] args) {
Solution solution = new Solution();
solution.print(10); // Output: Printing int: 10
solution.print("Hello"); // Output: Printing String: Hello
}
}
Python
In Python:
class Solution:
def print(self, a):
if isinstance(a, int):
print(f"Printing int: {a}")
elif isinstance(a, str):
print(f"Printing String: {a}")
# Example usage
sol = Solution()
sol.print(10) # Output: Printing int: 10
sol.print("Hello") # Output: Printing String: Hello