Что выведет данный код?

abstract class A 
{         
    public virtual void Method1() 
    { 
        Console.WriteLine("A.Method1"); 
    } 
 
    public abstract void Method2(); 
} 
 
class B:A 
{ 
    public override void Method1() 
    { 
        Console.WriteLine("B.Method1"); 
    } 
} 
class Program 
{ 
    public static void Main(string[] args) 
    { 
        A a = new B(); 
        a.Method1(); 
    } 
} 
B.Method1
Код скомпилируется, но во время исполнения возникнет Exception
A.Method1
Код не скомпилируется