Compile Time And Runtime Polymorphism Java