Trying to work on an example from a book on method overriding. The code has two classes Veggies and Pumpkin.The only confusion i have is if the object of pumpkin is assigned to the myveggie object, why does it call the method of veggies class since the object is from derived class. I am sure this has something to do with static method,but I could get a more clear idea.
 class Veggies {
        public static void staticMethod(){
            System.out.println("Veggies static method");
        }
    public void instancemethod(){
        System.out.println("Veggies instance method");
    }
}
public class Pumpkin extends Veggies{
        public static void staticMethod(){
            System.out.println("Pumpkin static method");
        }
        @Override
        public void instancemethod(){
            System.out.println("Pumpkin instance method");
        }
        public static void main(String[] args) {
            Pumpkin myPumpkin=new Pumpkin();
            Veggies myveggie=myPumpkin;
            myveggie.staticMethod();
            myveggie.instancemethod();
        }
    }
 
    