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();
}
}