Using overload to implement the equivalent of a switch
Hello!
I've been trying to use polymorphism -via- overloading+overriding to
simulate a dynamic switch
class AbstractBase{
public abstract void doSomething(Object anObject);
public void activate(Object anObject){
doSomething(anObject);
}
}
class ResponsibleChild{
public void doSomething(Object anObject){
System.out.println("Type not supported");
}
public void doSomething(Integer anInt){
System.out.println("Integered");
}
public void doSomething(String aString){
System.out.println("Strung");
}
}
class Main{
public static void main(String args[]){
AbstractBase reference = new ResponsibleChild();
reference.activate(Integer.valueOf(10));
reference.activate("Strung!!");
}
}
The output I expected from this was ;
Integered
Strung
However the actual output is ;
Type not supported
Type not supported
Shouldn't the call
a. be made in the context of the object, and
b. narrow to the best possible match for the method signature
?
Regards,
Abhishek