I never refuse to confess that I am a newbie of Java programming.
It took me some time to understand the connection between reference and object, the difference between reference and pointer ( I learned the concept in C/C++) and the magnificant usage of upcasting.
Upcasting is really a very useful concept that every Javer must keep it in mind. It can not only help hide implementation of the derived class ,but make it possible to use anonymous class that implements an interface, as I will show you below:
interface I {
void play();
}
public class C {
private I go() {
return new I() {
{//Instant Initializer, just like constructor}
public void play() {
System.out.println("play()");
}
};
}
public static void main(String[] args) {
C c=new C();
I i=c.go();
i.play();
}
}
you will see the upcasting as well as anonymous class here:-)