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

virtual 的功用

2011-12-23 
virtual 的作用publicclassA{publicvirtualvoidfun(){Console.WriteLine( Aok )}}publicclassB:A{publi

virtual 的作用
public   class   A
        {
                public   virtual   void   fun()
                {
                        Console.WriteLine( "A   ok ");
                }
        }

        public   class   B   :   A
        {
                public   void   fun()
                {
                        Console.WriteLine( "B   ok ");
                }
        }

把类B里的fun()注释编译也会通过,是不是现在类A里的fun()前有没有virtual都是一样啊?

[解决办法]
实现多态性
[解决办法]
实现多态性,对,在类A里的fun()前有没有virtual都是一样

[解决办法]
编译可以通过,但是你仔细观察一下,多了一个警告,这里正确的写法应该是
public class B : A
{
public override void fun()
{
Console.WriteLine( "B ok ");
}
}

如果没有virtual关键字的话,要在子类覆盖基类的方法,需要用new关键字,如下:
public class A
{
public void fun()
{
Console.WriteLine( "A ok ");
}
}

public class B : A
{
public new void fun()
{
Console.WriteLine( "B ok ");
}
}


热点排行