关于C#中虚方法重载的说明(原创)

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

关于C#中虚方法重载的说明(原创)

在C#中,进行虚方法的重载有些体会,现与大家分享。

首先请大家看看下面的例子,

using System;

abstract public class contact

{

public virtual string prinf()

{

return ("这是虚方法");

}

}

public class class1:contact

{

public string prinf()

{

return ("这是新的方法");//但这会出现编译警告,因为已经从contact那继承了一个同名方法

}

}

想要通过编译,只需将prinf的声明改为

public override string prinf()

public new string prinf()

但是这两种声明方式是有区别的,

请看下面的例子:

using System;

abstract public class contact

{

public virtual string prinf()

{

return ("这是虚方法");

}

}

public class class1:contact

{

public override string prinf()

{

return ("这是新的方法");

}

}

public class class2:contact

{

public new string prinf()

{

return ("这是另一个新的方法");

}

}

public class text

{

public static void Main()

{

contact [] contacts=new contact [2];

contacts[0]=new class1;

contacts[1]=new class2;

foreach(contact ct in contacts)

{

Console.WriteLine(ct.printf);

}

}

}

最后我们看到的结果是

这是新的方法

这是虚方法

而没有看见“这是另一个新的方法”,这是因为class2没有重载虚方法,而是重新定义了一个方法!

这就是两者的区别!!!

zmsx

QQ:286433702

Email:zmsx4@163.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航