首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 继承有关问题

2012-04-15 
C# 继承问题类A.cspublic class A{protected virtual Msg(){}}public class B:A{protected override Msg()

C# 继承问题
类A.cs
public class A
{
  protected virtual Msg()
  {
   
  }
}

public class B:A
{
  protected override Msg()
  {
  base.Msg();
  }
}


public class C:B
{
  protected [这里应该用什么关键字] Msg()
  {
  base.Msg();
  }
}


public class D
{
  public Method1()
  {
  C c=new C();
  c.Msg();
  }

}

最好不要让编译器产生警告


想要达到的效果是,在类D的Method1方法中实例化 C类的一个对象“c”,调用“c”对象的Msg();方法时
其所有基类和本身的Msg方法全部被调用。





[解决办法]
override 就可以了。
[解决办法]

C# code
    public class A    {        public virtual void Msg()        {            Console.WriteLine("A");        }    }    public class B : A    {        public override void Msg()        {            base.Msg();            Console.WriteLine("B");        }    }    public class C : B    {        public override void Msg()        {            base.Msg();            Console.WriteLine("C");        }    }    public class D    {        public void Method1()        {            C c = new C();            c.Msg();        }    } 

热点排行