继承的实例和调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 09:28:48
public Class A
{
public virtual void num(){}
}
public Class B:A
{
public override void num(){}
}

第一种调用方法:
B b=new B();
b.num();
第二种调用方法:
A a=new B();
a.num();

两种调用方法有什么区别?

A a;
B b=new B()
a=b;

A a=new B(); 等效

您问题中写的2中写法,两者的运行结果一样,不过,第2种写法,运行的时候,程序会先在父类中找num()方法,如果可以重写,才会去B中找。
也就是说第2种写法可以访问到A中没有允许重写的方法