class SuperCafe4Java {
public Object get (Object o) {
return ("SuperCafe4Java");
}
}
class SubCafe4Java extends SuperCafe4Java {
public Object get (
String o) {
return ("SubCafe4Java");
}
}
class TestCafe4Java {
public static void main (String[] arguments) {
SuperCafe4Java superFoo;
SubCafe4Java subFoo;
superFoo = new SubCafe4Java();
System.out.println (superFoo.get("super"));
subFoo = new SubCafe4Java();
superFoo = subFoo;
System.out.println (superFoo.get("super"));
}
}
Can someone explain why "SuperCafe4Java" gets printed twice and not "SubCafe4Java"? I understand that the GET method is overloaded and not overriden here, but it still doesn't explain why "SuperCafe4Java" gets printed rather than "SubCafe4Java".