Java - Which polymorphic method gets invoked?

Question | Sep 23, 2016 | mnagu 

An Object can be referred to by a reference variable of the same type or its super type.

class A{
    void method1(){
      System.out.println("1");
    }
}
class B extends A{
    void method1(){
      System.out.println("2");
    }
    void method2(){
       System.out.println("3");
    }
}
public class ClassUtil{
    public static void main(String args[]){
        A a1 = new A();
        A a2 = new B();
        B b1 = new B();
        // Insert the code from options here
    }
}

Which of the following options is NOT correct, given the code from the options is inserted at the last line of the main() method?