C#多态中new 和(className)的区别

class A
{
public virtual void test1()
{
cnosole.writeline("test1 in A");
}
}
class B:A
{
public override void test1()
{
cnosole.writeline("test1 in B");
}
}

main()
{
B b=new B();
A a1=new B();
A a2=(A)b;
}

请问各位大神A a1=new B()、和A a2=(A)b,有什么区别?

区别就是一个是隐式转化,一个是明转。

一个先实例化,再转化
一个直接初始化