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