using System;namespace ConsoleApplication1
{
public class father
{
public virtual  void a()
{
           Console.WriteLine("a");
}
}
public class child: father
{
public void c()
{
Console.WriteLine("c");
} public override void a()
{
base.a ();
Console.WriteLine("d");
} } class Class1
{
static void Main(string[] args)
{
father aa = new father();
aa.a();
child bb = new child();
bb.c();
bb.a();
father dd =new child();
dd.a();
//child ff = new father();
//ff.a();
Console.ReadLine();
}
}
}
小弟不才,请问各位高手
father dd =new child();   这句话的意思是什么?
注释掉的地方为什么会报错?
base.a ();   这句又是指什么呢请各位高手不吝赐教

解决方案 »

  1.   

    看着a,b,c闹心
    还有,你的问题在这里出现N次了,都让人麻木了
      

  2.   

    假设有个人类,子类包括男人和女人那么需要人类对象的时候可以给男人,也可以给女人人类 人类对象 = new 男人类(); 正确但男人类 男人对象 = new 人类(); 错误base.a (); 
    ==
    调用基类的a方法
      

  3.   

    father dd =new child(); 派生类的实例可以作为父类的变量base.a (); 调用父类的方法 注释部分错误的原因 就是:父类的实例不可以作为派生类的变量
      

  4.   

    因为他们是父类和子类的关系
    father dd =new child();这里是父类实例化子类 正确的child ff = new father();子类是不能实例化父类的 所以错误