读书人

C# 继承有关问题

发布时间: 2012-04-15 18:39:21 作者: rapoo

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

读书人网 >C#

热点推荐