public abstract class a
{
public abstract void factiona();
}
public class b:a
{
public override void factiona()
{
Console.WriteLine("This is b.factiona");
}
public void factionb()
{
Console.WriteLine("This is b.factionb");
}
}
public class TestClass()
{
public static void Main()
{
a a1=new b();
a1.factiona();
a1.factionb();
Console.WriteLine(a1.GetType());
}
}
我在运行此程序时,a1.factionb()不能调用,可是a1.GetType()返回为b
既然是b类型,为何不能调用a1.factionb()?
{
public abstract void factiona();
}
public class b:a
{
public override void factiona()
{
Console.WriteLine("This is b.factiona");
}
public void factionb()
{
Console.WriteLine("This is b.factionb");
}
}
public class TestClass()
{
public static void Main()
{
a a1=new b();
a1.factiona();
a1.factionb();
Console.WriteLine(a1.GetType());
}
}
我在运行此程序时,a1.factionb()不能调用,可是a1.GetType()返回为b
既然是b类型,为何不能调用a1.factionb()?
因为b类的实例已经被赋给了a类的一个引用,所以只能展现a类的接口。
a al=new b();
到底在内存里面做了什么?还有想请教"引用(reference)"和"实例(instance)"的区别先谢谢各位大虾了!